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

cat*_*ull 2 postgresql macos heroku docker boot2docker

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

cat*_*ull 7

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

  1. 生成你的heroku数据库转储下载网址: heroku pgbackups:url
  2. 在postgres容器上启动bash shell.在我的系统上,这个容器命名为pg:fig 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中找到): pg_restore --verbose --clean --no-acl --no-owner -h [YOUR BOOT2DOCKER IP] -U [YOUR_USERNAME] -d [DATABASE_NAME] latest.dump

你有它!

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