六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 2207|回复: 0

Rails Migration 备忘录

[复制链接]

升级  16%

2

主题

2

主题

2

主题

童生

Rank: 1

积分
8
 楼主| 发表于 2013-1-1 22:30:42 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">Migration命名
1、文件名的格式为:
YYYYMMDDHHMMSS_create_products.rb
前面“YYYYMMDDHHMMSS”部分为UTC时间戳。
2、类名遵循驼峰式命名格式
如:CreateProducts
3、类名与文件名的后半部分保持一致
如果修改文件名,则必须修改文件中的类名,否则会报 missing class 的错误。
例如
文件名: 20080906120000_create_products.rb
对应类名:CreateProducts
文件名:20080906120001_add_details_to_products.rb
对应类名:AddDetailsToProducts

Migration任务总结
1、建立数据表:create_table
常配合使用方法为:add_column
例如: create_table :suppliers add_column :suppliers, :name, :string, {:limit => 60}
比较sexy的写法                                
create_table :suppliers do |t|  
        t.string :name,
end
2、变更数据表:change_table
常配合使用的方法为:
add_column  对应sexy写法:t.column 或者 t.string(integer...)
change_column
remove_column  对应sexy写法:t.remove
rename_column
change_column_default

add_index  对应sexy写法:t.index
remove_index  对应sexy写法:t.remove_index
rename_index

add_timestamps
remove_timestamps

3、重命名数据表:rename_table

Rake任务总结
1、单纯地执行所有还未执行的迁移任务中的up(或是change中的up)方法
rake db:migrate
指定版本:
rake db:migrate VERSION=20080906120000
2、执行最后一个迁移任务的down方法
rake db:rollback
指定最后几步的迁移任务,默认为最后一个:
rake db:rollback STEP=3
3、执行一个指定的migration的up或down方法,需指定版本号
rake db:migrate:up VERSION=20080906120000
rake db:migrate:down VERSION=20080906120000
它会首先确认这个migration之前有没有跑过,如果Active Record认为20080906120000已经跑过,那么执行 db:migrate:up VERSION=20080906120000将不会做任何操作。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表