1

当我尝试在 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 上呢?

4

2 回答 2

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单独通过 via 发生,因为万一出现错误,整个迁移将回滚并且数据库保持一致状态。

于 2013-09-08T17:01:20.307 回答
0

您能否发布您的架构,以便我可以查看您是否有“property_id”列。

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

也试试

rake db:drop rake db:migrate

怎么了?

于 2013-09-08T15:29:51.837 回答