浏览 2028 次
锁定老帖子 主题:Rails中的Migrations(二)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (18)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-19
刨析Migrations: 之前提到过,migrate其实就是rb代码,
因此每个migrate文件都包含一个rb
class.这个class是ActiveRecord::Migration的子类,在这个类中至少应该包含两个类方法:up和down.up方法会执
行相应的更改数据库结构的方法,而down方法则会undo up中的改动.
增加字段: 当需要对某张表添加某个字段时,可以使用ActiveRecord::Migration中的add_column方法,典型的add_column方法如以下这些实例:
add_column :orders, :attn, :string, :limit => 100 add_column :orders, :order_type, :integer add_column :orders, :ship_class, :string, :null => false, :default => 'priority' add_column :orders, :amount, :decimal, :precision => 8, :scale => 2add_column方法签名为:add_column (table_name, column_name, type, options = {})在最后参数options hash中可以使用以下key对column进行额外的定义: :limit
=>
定义该字段的长度
:default => 定义该字段的默认值 :null => 该字段是否允许为空 :precision => 该字段的有效数字长度 :scale => 该字段小数点后的数字长度 改变字段名称: 如果需要对某张表的某个字段进行改名,可以使用rename_column方法.改方法的签名如下:rename_column
(table_name, column_name, new_column_name),例子如下:
rename_column :orders, :e_mail, :customer_email将orders表中的e_mail字段改名为customer_email. 需要注意的是rename_column方法只会改变字段的名称,而不会修改该字段的依赖限制关系,例如主外键关系等.还有就是该方法并不是所有数据库都支持该方法. 改变字段类型和属性: def self.down raise ActiveRecord::IrreversibleMigration end 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |