尝试在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上呢?
答案 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
发生,因为如果出现错误,整个迁移将回滚并且数据库保持一致状态。