伙计们,
我有一种情况,我创建了一个 Rails 迁移文件,它更新了模型中属性的值。我在几个生产部署中运行了此迁移,然后意识到由于拼写错误,该表从未更新。解决此问题的最佳做法是什么,我应该使用修复程序更新我当前的迁移文件并提交它,然后重新运行迁移,或者我应该创建一个新的迁移文件并删除此迁移。
伙计们,
我有一种情况,我创建了一个 Rails 迁移文件,它更新了模型中属性的值。我在几个生产部署中运行了此迁移,然后意识到由于拼写错误,该表从未更新。解决此问题的最佳做法是什么,我应该使用修复程序更新我当前的迁移文件并提交它,然后重新运行迁移,或者我应该创建一个新的迁移文件并删除此迁移。
如果您运行迁移并且成功,然后您更新当前迁移文件并尝试重新运行迁移,Rails 不会更新您的架构,因为迁移版本将与当前数据库版本相同。
如果您这样做,rake db:migrate:status
您应该能够看到迁移列表以及已应用或未应用的迁移列表。
基于此,如果您的迁移表明status: down
它尚未应用于数据库。
如果它已经应用于数据库,您可以有许多选项。
rake db:rollback
更新您的文件,然后重新运行该迁移