民间,
我遇到过这种情况,我创建了一个rails迁移文件,用于更新模型中属性的值。我在几个生产部署上运行了这个迁移,然后意识到由于输入错误而没有更新表。解决此问题的最佳做法是什么,我应该使用修复程序更新当前的迁移文件并提交它然后重新运行迁移,还是应该创建新的迁移文件并删除此迁移。
答案 0 :(得分:2)
如果您运行了迁移并且它已成功,然后您更新当前的迁移文件并尝试重新运行迁移,则Rails将不会更新您的架构,因为迁移版本将与当前的db版本相同。 / p>
如果您执行rake db:migrate:status
,您应该能够看到迁移列表以及已应用的迁移列表。
基于此,如果您的迁移显示status: down
,则表示它仍未应用于数据库。
如果它已经应用于数据库,您可以有许多选项。
rake db:rollback
更新您的文件,然后重新运行该迁移