2017-02-09 17 views
1

最近、本番サーバーをHerokuに移行しました。その間、私はHerokuのdocumentation to export and import my database to their serversを追跡しました。データベースのインポート後に移行を移行済みとマークする

今、heroku run rake db:migrateを使用してデータベースを移行しようとすると、テーブルがすでに存在するというエラーが発生します。データベースが新しくなったかのように、最初からmigrateが開始されているように見えます。

db:migrateを早送りする方法は、最新の2番目のマイグレーションファイルから開始しますか? 私は、本番データベースをインポートしてから本番データベースを移行する必要があるため、ローカルデータベースに変更を加えました。

+1

古いデータベースをバックアップしたときに 'schema_migrations'をダンプしませんでしたか? Railsはデータベース内でどのマイグレーションが実行されたかを把握しているので、データベースをコピーするときにマイグレーションの問題は発生しません。 –

+0

私は "pg_dump -U postgres -Fc --no-acl --no-owner database_name> backup.dump"を実行しました。それを持っていないはずですか? – Ryan

+0

それはすべてを得ているはずです。復元する前にデータベースをセットアップしましたか?これはあなたのデータベースに 'schema.rb'を適用しました(これは全てのテーブルを作成していました)。いくつかの簡単なハッキングオプション(手動ですべてのものが存在することを確認する必要があります):(1)すべてのマイグレーションを一時的に削除してから削除する必要があるため、 (2) 'schema_migrations'を手動で設定して、' db:migrate'がすべて実行されたと思うようにします。 –

答えて

0

新しい空のデータベースを作成するつもりはないので、以前のすべての移行をdb/migrateからdb/archiveという名前のフォルダに移動するだけでした。

関連する問題