私の目標は、サーバーからproject_develデータベースに.sqlダンプをインポートすることです。.sqlファイルからデータをロードするときに-d[databasename]オプションが無視されているように見えるという苛立たしい問題に遭遇しました。代わりに(出力の約12行を見ることができます)、.sqlファイルはインポーターに別のデータベースにインポートするように指示している可能性があります。なぜこれが起こっているのか、そしてデータを-dで指定したデータベースに強制的に入れる方法についての手がかりはありますか?
ここでの私の目標は、本番データをローカルにロードして何かをデバッグすることだけなので、database.ymlの開発データベース名をproject_prodに変更することで、最終的にバンドエイドを追加しました。
インポートに使用するコマンド:
YeastFlakes:newproject new$ psql -h /tmp -d project_devel -f prod_dump_2013-02-07_09-00.sql
出力:
You are now connected to database "postgres" as user "new".
SET
SET
SET
psql:prod_dump_2013-02-07_09-00.sql:15: ERROR: role "project" already exists
ALTER ROLE
psql:prod_dump_2013-02-07_09-00.sql:17: ERROR: role "postgres" already exists
ALTER ROLE
psql:prod_dump_2013-02-07_09-00.sql:19: ERROR: role "replication" already exists
ALTER ROLE
psql:prod_dump_2013-02-07_09-00.sql:31: ERROR: database "project_prod" already exists
REVOKE
REVOKE
GRANT
GRANT
You are now connected to database "project_prod" as user "new".
SET
SET
SET
SET
SET
SET
CREATE EXTENSION
COMMENT
SET
SET
SET
psql:prod_dump_2013-02-07_09-00.sql:85: ERROR: relation "active_admin_comments" already exists
ALTER TABLE
psql:prod_dump_2013-02-07_09-00.sql:99: ERROR: relation "active_admin_comments_id_seq" already exists
出力はしばらく続きます...。