将Heroku PostgreSQL转储导入本地数据库时出现问题
我正试图将PostgreSQL转储从heroku导入本地数据库(以模拟本地环境中的生产数据)。我正在OSX上本地使用postgres 9.2。以下是我在控制台中采取的步骤:将Heroku PostgreSQL转储导入本地数据库时出现问题,postgresql,heroku,Postgresql,Heroku,我正试图将PostgreSQL转储从heroku导入本地数据库(以模拟本地环境中的生产数据)。我正在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 --n
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
包含hstore
扩展以及可能的其他更改
我建议删除db\u dev
并从template0
重新创建它,该只读模板包含基本的默认数据库
createdb -T template0 dev_db
如果这不起作用,请在此处发布更新后的错误并发表评论。请显示您在尝试手动删除
public
然后恢复时遇到的错误<代码>删除扩展存储;丢弃模式公共级联代码>。有一种感觉是hstore造成了麻烦,谢谢修复。