如何修复我的迁移? ActiveRecord::Migrator.current_version 和 db:migrate:status 是错误的

How can I fix my migrations? ActiveRecord::Migrator.current_version and db:migrate:status are wrong

我混合使用了 rake db:migratepg_restore(Postgres 从备份恢复)。

这让我的数据库与 db:migrate:status 不同步。我的数据库中有列在 ActiveRecord::Migrator.current_version 之前,所以当我尝试迁移时,我得到 PG::DuplicateTable: ERROR: relation "foo_bar" already exists.

我该如何调和呢?

您应该能够使用 psql 客户端并从命令行执行此操作。一个简单的方法是使用 ./bin/rails dbconsole

那么你可以直接使用sql来插入值。

insert into schema_migrations(version) values ('20150508142945');
insert into schema_migrations(version) values ('20150508172938');

更改值以匹配您的环境。