sql - 如何在 heroku 上获取纯文本 postgres 数据库转储?

标签 sql postgresql heroku

由于我的 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/

相关文章:

mysql - 数据库触发器是如何在 SQL 数据库引擎中实现的?

postgresql - 将字符串插入 jsonb 类型的 postgres

sql - 搜索表中特定列的方法

ruby-on-rails - Heroku、ZenTest 和 RubyGems

node.js - Heroku 上的 mongodb 驱动程序出现错误 : Cannot find module 'mongodb-core'

sql - 将用户与过滤器配对

mysql - SQL:合并多行数据

javascript - 如何选择包含特定单词的 postgreSQL 行

sql - 查找两个表之间重叠的最有效方法

ruby-on-rails - 使用回形针和 rails 缓存签名的 S3 URI