2017-01-24 4 views
0

開発プラットフォームを切り替える際に、マシン間でPostgresデータベースを移動しようとしています。私は両方のマシンにyaml_db gemがインストールされています。私の古いプラットフォームでマシン間でpostgresデータベースを移動する際の外部キーの処理方法

は私がやる:私は私の新しいマシンにreloadデータベースに行くとき

rake db:scheme:dump 
rake db:data:dump 

私は2ダースforeign_keysは私のデータをロードするために私を妨げていることを発見しました。私の選択肢は何ですか?

答えて

0

あなたは使用してデータベースをダンプできるようにpg_dumpコマンドを使用することができます。

例:

pg_dump -U <user-name> -h <host> <database> > <file-name>.sql 

pg_dump -U postgres -h 127.0.0.1 database1 > database1.sql 

は、次にデータベースに

psql <database-name> < path/to/sql_dump_file 

psql database1 < database1.sql 
を復元するために、他のマシンと次のコマンドを実行してファイルをコピーします
1

あなたはデータベースをコピーしていますが、Railsはプロセスと何も関係がないはずです(あなたが見ているように、ちょうどその過程に入ります)。

代わりに、DBAハットを置いて、Railsを気にせずにデータベースをコピーしてください。 pg_dumpを使用してデータをダンプし、pg_restoreでデータを復元します。データベースのバックアップ/復元ツールは、外部キー、トリガ、拡張機能、およびRailsyツールでは理解できないことをすべて認識しています。

関連する問題