3

伙计们,

我有一种情况,我创建了一个 Rails 迁移文件,它更新了模型中属性的值。我在几个生产部署中运行了此迁移,然后意识到由于拼写错误,该表从未更新。解决此问题的最佳做法是什么,我应该使用修复程序更新我当前的迁移文件并提交它,然后重新运行迁移,或者我应该创建一个新的迁移文件并删除此迁移。

4

1 回答 1

2

如果您运行迁移并且成功,然后您更新当前迁移文件并尝试重新运行迁移,Rails 不会更新您的架构,因为迁移版本将与当前数据库版本相同。

如果您这样做,rake db:migrate:status您应该能够看到迁移列表以及已应用或未应用的迁移列表。

基于此,如果您的迁移表明status: down它尚未应用于数据库。

如果它已经应用于数据库,您可以有许多选项。

  1. rake db:rollback更新您的文件,然后重新运行该迁移
  2. 创建一个修复错字的新文件。请注意,即使删除包含错误数据的迁移也不会修复您的数据库,具体取决于您对表所做的操作以及在新迁移中修复它的方式。
于 2013-03-26T14:57:22.583 回答