如果我有两个迁移,mig1和mig2,我运行rake db:migrate,然后我返回到mig1并更改列的默认值,当我再次运行rake db:migrate时,是否会反映此更改?或者我是否必须为该列进行新的迁移才能进行更改?
答案 0 :(得分:2)
您可以通过运行以下命令重做给定的VERSION:
rake db:migrate:down VERSION=___________
rake db:migrate:up VERSION=____________
答案 1 :(得分:1)
您应该进行新迁移,或者在运行相关迁移之前使用rake db:rollback
任务移回数据库版本。不会自动选择对迁移脚本的更改。
跟踪架构的当前版本并将其应用于迁移,因此运行rake db:migrate不会重新运行旧迁移。因此,只要您在迁移时提供了正确的rollback
方法,就可以使用self.down
功能。回滚执行这些向下方法,在迁移过程中撤消迁移。
然后,您可以编辑迁移并重新迁移。
答案 2 :(得分:0)
rake db:migrate:redo VERSION = _ __ _