3

如果我有两个迁移,第一个添加一列,第二个将值插入该列,我还需要reset_column_information在第一次迁移结束时手动调用吗?

或改写问题:reset_column_information每次迁移后自动调用?


我在 Rails 3.2.3 上,我相信它曾经reset_column_information在每次迁移后调用。但是最近我发现当我将它插入到新创建的列时缺少一些值。这两个迁移在一个 rake 任务期间运行。我认为这是一个错误,但只是想澄清一下。


更新:

我创建了一个演示应用程序来演示该问题:https ://github.com/lulalala/migration-bug 。自述文件显示了准备和重现它的步骤。我认为这可能是一个错误并已归档。

4

2 回答 2

4

根据Rails 问题的此评论,Rails 3.2.6 每次运行时只会获取数据库方案的新副本rake db:migrate。因此,一次运行一个迁移可能有助于绕过某些新列未更新的问题。

于 2012-07-06T04:18:20.253 回答
2

您需要自己在迁移中调用“reset_column_information”。这仅在您添加一列并随后在“相同迁移”中立即填充它时。查看导轨指南了解详细信息。

于 2012-06-29T17:30:26.730 回答