Rails迁移更改列
我们有script/generate migration add_fieldname_to_tablename fieldname:datatype
语法,用于向模型添加新列。
在同一行上,我们是否有脚本/生成以更改列的数据类型? 或者我应该直接将SQL写入我的vanilla迁移中?
我想将datetime
date
的列更改为date
。
我认为这应该工作。
change_column :table_name, :column_name, :date
如果您在表格中有多列更改,也可以使用块。
例:
change_table :table_name do |t|
t.change :column_name, :column_type, {options}
end
有关更多详细信息,请参阅Table类中的API文档。
我不知道您是否可以从命令行创建迁移来执行所有这些操作,但是您可以创建新的迁移,然后编辑迁移以执行此操作。
如果tablename是您的表的名称,fieldname是您的字段的名称,并且您希望从datetime更改为date,则可以编写迁移来执行此操作。
您可以创建一个新的迁移:
rails g migration change_data_type_for_fieldname
然后编辑迁移以使用change_table:
class ChangeDataTypeForFieldname < ActiveRecord::Migration
def self.up
change_table :tablename do |t|
t.change :fieldname, :date
end
end
def self.down
change_table :tablename do |t|
t.change :fieldname, :datetime
end
end
end
然后运行迁移:
rake db:migrate
链接地址: http://www.djcxy.com/p/47177.html
上一篇: Rails migration for change column
下一篇: How do I make a column unique and index it in a Ruby on Rails migration?