使用boot2docker将heroku postgres数据库转储导入到docker数据库容器中

我在OSX 10.10上运行boot2docker。 我有一个数据库容器的设置,所以我的数据库不会被重置,每次我开始/停止一个容器。 我想从heroku导入一个postgres数据库转储到我的docker数据库。 这可能吗?

我最终在同事的帮助下发现了这一点。 这比只是一个普通的旧postgres数据库有点难,但不是很多。 这是基于这个计算器的答案。

  1. 生成你的heroku数据库转储下载url: heroku pgbackups:url
  2. 在你的postgres容器上启动一个bash shell。 在我的系统上,这个容器被命名为pgfig run db bash
  3. 安装curl: apt-get update && apt-get install curl
  4. 使用curl下载数据库转储: curl -o latest.dump [PASTE THE OUTPUT OF STEP 1 HERE]
  5. 导入转储(注意,数据库名称和用户名可分别在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步。