使用boot2docker将heroku postgres数据库转储导入到docker数据库容器中
我在OSX 10.10上运行boot2docker。 我有一个数据库容器的设置,所以我的数据库不会被重置,每次我开始/停止一个容器。 我想从heroku导入一个postgres数据库转储到我的docker数据库。 这可能吗?
我最终在同事的帮助下发现了这一点。 这比只是一个普通的旧postgres数据库有点难,但不是很多。 这是基于这个计算器的答案。
- 生成你的heroku数据库转储下载url:
heroku pgbackups:url
- 在你的postgres容器上启动一个bash shell。 在我的系统上,这个容器被命名为
pg
:fig run db bash
- 安装curl:
apt-get update && apt-get install curl
- 使用curl下载数据库转储:
curl -o latest.dump [PASTE THE OUTPUT OF STEP 1 HERE]
- 导入转储(注意,数据库名称和用户名可分别在fig.yml和database.yml中find):
pg_restore --verbose --clean --no-acl --no-owner -h [YOUR BOOT2DOCKER IP] -U [YOUR_USERNAME] -d [DATABASE_NAME] latest.dump
在那里,你有它!
如果最后一步失败,出现某种无效的数据库错误,请仔细检查最新的head latest.dump
。 如果您觉得您的数据库没有正确下载,您可能需要通过web gui手动下载并将其上传到其他主机,如下拉框。 那么你会用你的转储可以find的任何urlreplace第1步。