如何防止在 Heroku 上迁移和部署 RoR 应用程序之间出现 "Unknown column" 错误?

How can I prevent "Unknown column" errors between migration and deployment of RoR app on Heroku?

对于我团队的 Heroku 部署,我们首先 运行 迁移,然后推送到 Heroku。当存在删除列的迁移时,在迁移和 Heroku dynos 运行 新代码之间的时间里,我们遇到错误 ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'foo' in 'field list'。我们只在列不再使用很久后才删除它(即生产中的代码已经不需要该列)。

我们的猜测是 config.cache_classes = true 正在生产中导致 ActiveRecord 具有特定 table.

的列列表

有没有一种方法可以在迁移期间安全地删除列而无需重新启动任何 Heroku dynos?

Pedro 知道,请查看此 link 以了解有关如何完成此操作的详细信息:

http://pedro.herokuapp.com/past/2011/7/13/rails_migrations_with_no_downtime/