3

我可以使用 .dump 转储 Heroku 数据库$ heroku pgbackups:capture。此外,这篇 SO 帖子显示,有一些工具可以获取开发数据库并将其转储到 seed.rb。

我想知道是否有一种简单的方法可以将这两个过程结合起来,有效地将生产 Heroku 数据库中的数据转储到我本地的seeds.rb 中,以进行更现实的开发测试。

如果这是可能的,那么最干净的方法是什么?

更新:

基于 dB' 的深刻回答,我可能会考虑在本地使用 PGSQL。但是,如果有办法轻松做到这一点,我仍然对问题的 seed.rb 方面感兴趣。

4

2 回答 2

5

有几种方法可以完成这样的事情。@dB' 概述了其中之一 - 使用PG Backups 插件导出您的数据库。这是一个很好的选择,但涉及一些(微不足道的)手动命令。

我建议使用pg:transfer Heroku CLI 插件一步来传输数据。在幕后,它仍然与使用 PG Backups 发生的事情非常相似,但它的包装更好一些,并且有一些有用的默认值。

pg:transfer从您的应用程序目录中,通过安装插件并执行命令,将您的生产数据库复制到本地(假设是本地 PG 数据库) 。

$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$ heroku pg:transfer

您还可以设置几个选项。有关更多详细信息,请参阅我的文章

希望有帮助!是的,请在开发期间使用与生产中相同的数据库

于 2013-02-15T19:38:09.553 回答
2

不确定这是否是您要查找的内容,但您是否尝试过使用 pgbackups:capture 和 pg_restore 将数据库复制到本地计算机?这种方法不使用seeds.rb,但仍会在本地计算机上重新创建生产数据库。它看起来像这样。

$ heroku pgbackups:capture
$ curl -o latest.dump `heroku pgbackups:url`
$ pg_restore --verbose --clean --no-acl --no-owner -h localhost -U myuser -d mydb latest.dump

(这段代码是从Heroku 开发中心的解释中大量复制的。)

于 2013-02-08T23:15:15.407 回答