1
我最近将生产服务器迁移到Heroku。在这样做的时候,我跟着Heroku的documentation to export and import my database to their servers。在数据库导入后迁移标记迁移
现在,当我尝试使用heroku run rake db:migrate
迁移我的数据库时,出现表已存在的错误。看起来好像migrate
从头开始,就好像数据库是新的一样。
如何快速转发db:migrate
,以便从第二个最近的迁移文件开始? 自从数据库导入生产后,我对本地数据库进行了一次更改,现在我需要迁移生产数据库。
备份旧数据库时,您没有转储'schema_migrations'吗? Rails会跟踪在数据库中运行了哪些迁移,因此复制数据库时不应出现任何迁移问题。 –
我做了“pg_dump -U postgres -Fc --no-acl --no-owner database_name> backup.dump”。难道这不应该得到它? – Ryan
本应该得到一切。恢复之前,您是否设置了数据库?这会将'schema.rb'应用到你的数据库(它将创建所有的表)。一些快速的黑客选项(你必须手动确保所有东西都在那里,如果你这样做的话处于正确的状态):(1)删除你所有的迁移,因为它们应该是临时的,并且现在清理掉, (2)手动填充'schema_migrations',以便db:migrate'认为它们都已经运行。 –