导入Heroku PostgreSQL转储文件到本地数据库出现问题。

5

我正在尝试将Heroku上的PostgreSQL转储导入到本地数据库中(以在本地环境中模拟生产数据)。 我在OSX本地使用postgres 9.2。 这是我在控制台中执行的步骤:

dropdb db_dev

createdb db_dev

heroku pgbackups:capture HEROKU_POSTGRESQL_MAROON_URL

curl -o latest.dump `heroku pgbackups:url`

pg_restore --verbose --clean --no-acl --no-owner -h localhost -U connorwarnock -d db-dev latest.dump

以下是后续错误:

pg_restore: connecting to database for restore
pg_restore: dropping COMMENT EXTENSION plpgsql
pg_restore: dropping EXTENSION plpgsql
pg_restore: dropping COMMENT SCHEMA public
pg_restore: dropping SCHEMA public
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 6; 2615 2200 SCHEMA public whgnwlkesexkyo
pg_restore: [archiver (db)] could not execute query: ERROR:  cannot drop schema public because other objects depend on it
DETAIL:  extension hstore depends on schema public
HINT:  Use DROP ... CASCADE to drop the dependent objects too.
Command was: DROP SCHEMA public;

pg_restore: creating SCHEMA public
pg_restore: [archiver (db)] could not execute query: ERROR:  schema "public" already exists
Command was: CREATE SCHEMA public;



pg_restore: creating COMMENT SCHEMA public
pg_restore: creating EXTENSION plpgsql
pg_restore: creating COMMENT EXTENSION plpgsql
pg_restore: setting owner and privileges for SCHEMA public
pg_restore: setting owner and privileges for COMMENT SCHEMA public
pg_restore: setting owner and privileges for EXTENSION plpgsql
pg_restore: setting owner and privileges for COMMENT EXTENSION plpgsql
WARNING: errors ignored on restore: 2

没有导入任何数据。似乎公共模式会引起问题(我已手动删除了该模式并尝试重新导入,但仍然无效)。也许是hstore扩展引起的麻烦?有没有其他想法来避免这些错误?


1
请在手动删除public然后恢复时显示您遇到的错误。DROP EXTENSION hstore; DROP SCHEMA public CASCADE; - Craig Ringer
1个回答

4

看起来你的template1包含hstore扩展和可能的其他更改。

我建议删除db_dev并从只读模板template0重新创建它,该模板包含基本默认数据库。

createdb -T template0 dev_db

如果这个方法无效,请在此处发布更新的错误信息并进行评论。

有一种感觉是hstore引起了麻烦,感谢您的修复。 - Connor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接