如何修复我的迁移? 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:migrate
和 pg_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');
更改值以匹配您的环境。
我混合使用了 rake db:migrate
和 pg_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');
更改值以匹配您的环境。