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

时间:2014-10-23 18:12:22

标签: macos postgresql heroku docker boot2docker

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

1 个答案:

答案 0 :(得分:5)

我最终在一位同事的帮助下找到了这个。它比一个普通的旧postgres数据库有点困难,但并不多。这是基于this stackoverflow的答案。

  1. 生成您的heroku数据库转储下载网址: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. 下载数据库转储
  6. 导入转储(注意,数据库名称和用户名分别可以在fig.yml和database.yml中找到):pg_restore --verbose --clean --no-acl --no-owner -h [YOUR BOOT2DOCKER IP] -U [YOUR_USERNAME] -d [DATABASE_NAME] latest.dump
  7. 你有它!

    如果最后一步因某种无效的数据库错误而失败,请使用head latest.dump仔细检查latest.dump。如果您觉得您的数据库没有正确下载,您可能需要通过web gui手动下载它并将其上传到其他主机,如下拉框。然后,您将用步骤1替换您可以在其中找到转储的URL。