3

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

4

1 回答 1

10

我最终在同事的帮助下发现了这一点。它比普通的旧 postgres 数据库要难一些,但并不多。这是基于this stackoverflow answer。

  1. 生成您的 heroku 数据库转储下载 url:heroku pgbackups:url
  2. 在您的 postgres 容器上启动一个 bash shell。在我的系统上,这个容器被命名为pgfig run db bash
  3. 安装卷曲: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 手动下载它并将其上传到另一个主机,例如 drop box。然后你可以用你的转储可以找到的任何 url 替换第 1 步。

于 2014-11-17T17:53:30.497 回答