加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

无法将Heroku PostgreSQL转储导入本地数据库

发布时间:2020-12-13 15:56:14 所属栏目:百科 来源:网络整理
导读:我正在尝试从heroku导入PostgreSQL转储到本地数据库(以模仿本地环境中的生产数据).我在OSX本地使用postgres 9.2.以下是我在控制台中执行的步骤: dropdb db_devcreatedb db_devheroku pgbackups:capture HEROKU_POSTGRESQL_MAROON_URLcurl -o latest.dump `h
我正在尝试从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扩展会造成麻烦?关于如何避免这些错误的任何其他想法?

解决方法

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

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

createdb -T template0 dev_db

如果这不起作用,请在此处发布更新的错误和评论.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读