Heroku数据库迁移错误

时间:2013-09-08 15:08:14

标签: ruby-on-rails heroku

尝试在Heroku上迁移数据库时出现迁移错误。在这里找到了提供这个建议的解决方案:

rake db:create
rake db:schema:load
rake db:migrate

但它没有任何区别。错误就像这样开始:

PG::UndefinedColumn: ERROR:  column "property_id" of relation "bookings" does not exist

我不再拥有property_id列,因为这在以后的本地迁移中发生了变化。 我的迁移在本地工作,为什么不在Heroku上呢?

2 个答案:

答案 0 :(得分:0)

你可以发布你的架构,这样我就可以看到你是否有一个列“property_id”。

如果不这样做,则必须将此列property_id添加到预订类。

也可以尝试

rake db:drop rake db:migrate

会发生什么?

答案 1 :(得分:0)

您是否在heroku postgres数据库和本地数据库之间迁移数据?似乎schema_migrations表与heroku实例上的实际不同步。

如果你可以丢失所有数据,我会重新开始。以下命令将擦除整个数据库,销毁所有表:

heroku pg:reset # destructive action, careful

之后,再次尝试heroku run rake db:migrate;它应该工作。

如果这不起作用,那么您可能必须手动检查schema_migrations表并确保已应用正确的迁移,并可能手动将其恢复到一致状态。

这种情况非常不正常,只能通过手动触摸此数据或架构来实现。因为postgres支持事务性DDL,所以不能单独通过heroku run rake db:migrate发生,因为如果出现错误,整个迁移将回滚并且数据库保持一致状态。