我创建了我的模型,然后使用以下内容填充了我的迁移文件db/migration/234802843208_create_XXXXX_rb
:
class CreateXXXXX < ActiveRecord::Migration
def change
create_table :XXXXX do |t|
t.string :gender
t.date :date_of_birth
t.string :Marital_status
t.string :Spouses_name
我跑了rake db:migrate。
现在我要编辑表格。我想更改Marital_status以获取布尔数据类型而不是字符串。有没有正确的方法来做到这一点?我可以直接编辑表并重新运行rake db:migrate吗?你会建议我回滚,编辑,然后重新迁移还是有更好的方法?
答案 0 :(得分:1)
你可以做到
rake db:rollback
或
rake db:migrate:down
然后打开迁移文件并更新更改
class CreateXXXXX < ActiveRecord::Migration
def change
create_table :XXXXX do |t|
t.string :gender
t.date :date_of_birth
t.boolean :Marital_status
t.string :Spouses_name
end
并执行rake db:migrate
或rake db:migrate:up
答案 1 :(得分:0)
在这些情况下,对我来说似乎很方便的是编辑文件然后运行
rake db:migrate:redo
如果无法做到这一点,我会建议您进行回滚,然后在更新迁移类后进行迁移。
答案 2 :(得分:0)
您应该创建另一个迁移,并编辑该字段。
rails g migration edit_xxxx_marital_status
创建迁移文件。并添加以下内容。
class EditXXXXMaritalStatus < ActiveRecord::Migration
def up
change_column XXXXX. :Marital_status, :boolean, default: false # if you waNT TO add any default value
end
def down
change_column :XXXXX, :Marital_status, :string
end
end