由于我的postgres数据库在heroku(9.1)和本地安装(8.4)上的版本不兼容,我需要一个纯文本sql数据库转储文件,这样我就可以在本地测试环境中放置一份生产数据的副本.

在heroku上,我似乎无法使用pg_dump进行转储,但只能这样做:

$ heroku pgbackups:capture
$ curl -o my_dump_file.dump `heroku pgbackups:url`

...这给了我"自定义数据库转储格式"而不是"纯文本格式",所以我不能这样做:

$ psql -d my_local_database -f my_dump_file.sql

推荐答案

你可以直接从Heroku数据库中创建自己的pg_转储.

首先,使用heroku config:get DATABASE_URL获得你的postgres字符串.

查找Heroku Postgres url(示例:HEROKU_POSTGRESQL_RED_URL: postgres://user3123:passkja83kd8@ec2-117-21-174-214.compute-1.amazonaws.com:6212/db982398),其格式为postgres://<username>:<password>@<host_name>:<port>/<dbname>.

接下来,在命令行上运行以下命令:

pg_dump --host=<host_name> --port=<port> --username=<username> --password --dbname=<dbname> > output.sql

终端将询问您的密码,然后运行它并将其转储到输出中.sql.

然后导入它:

psql -d my_local_database -f output.sql

Postgresql相关问答推荐

如何获取实例化视图的列级权限?

对 VOLATILE 函数的调用会 destruct SELECT 语句的原子性

如何在docker-compose中使用docker secrets设置ConnectionString?

连接到 PostgreSQL 时没有属性执行错误

在 Age Viewer 上看不到 node 的第一个属性

Cloud SQL 时间点 数据驻留

Docker - 判断 postgres 是否准备好

处理 sqlalchemy 断开连接的更好方法

如何更改几何列的 SRID?

INSERT RETURNING 是否保证以 right的顺序返回?

我如何在docker中备份数据库

statement_date列是日期类型,但表达式是整数类型

postgresql 在查询中插入空值

Rails 4查询由单个属性唯一

获取 PostgreSQL 中当前正在运行的查询的参数

如何增加 max_locks_per_transaction

获取json列键为空的记录

PGAdmin 编辑数据

错误:关系列不存在 PostgreSQL,无法运行插入查询

如何在 psql 中设置默认显示模式