由于我的 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_dump。
首先,使用 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
终端将询问您的密码,然后运行它并将其转储到 output.sql 中。
然后导入:
psql -d my_local_database -f output.sql
关于sql - 如何在 heroku 上获取纯文本 postgres 数据库转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22887524/