我刚才有一个简短的问题。一旦您运行了更改迁移,例如您需要向现有表添加列,那么您可以创建更改迁移。如果我已经运行了更改迁移,并且想在该表中添加不同的新列,我是否可以在更改迁移中编辑代码以添加第二个新列,或者我是否必须创建一个全新的更改迁移?
答案 0 :(得分:0)
正如您所说,您已经运行了迁移,这意味着您的更改已反映到您的数据库中。所以在这一点上,如果你想要进行另一次更改,那么你需要进行新的迁移,但是有一种方法可以在同一次迁移中进行更改
1首先,您需要还原该迁移,这意味着您需要回滚要更改的迁移
rake db:migrate:down VERSION=20100905201547
2-现在在此迁移文件中进行更改(in your case add another column also
)并运行
rake db:migrate
但如果您还没有将代码推送到git,则始终建议您创建新的迁移。
答案 1 :(得分:0)
要对同一个迁移文件实施更改:
1)使用ROLLBACK后退一步
rake db:rollback STEP=1
2)实施变更:
# add new column
3)运行db migrate:
rake db:migrate