【发布时间】:2013-01-23 08:56:21
【问题描述】:
我的目标是将 .sql 转储从我的服务器导入 project_devel 数据库。我遇到了一个令人沮丧的问题,当我从 .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
输出会持续一段时间......
【问题讨论】:
标签: ruby-on-rails postgresql amazon-ec2