我可以用$ heroku pgbackups:capture
转储heroku数据库。此外,这篇SO文章显示,有一些工具可以获取开发数据库并将其转储到seed.rb
我想知道是否有一种简单的方法可以将这两个过程结合起来,有效地将生产Heroku数据库中的数据转储到我的本地seeds.rb中,以便进行更现实的开发测试。
如果这是可能的,最干净的方法是什么?
更新:
根据dB’的深刻回答,我可能会考虑在本地使用PGSQL。然而,我仍然对这个问题的seed.rb方面感兴趣,如果有办法轻松做到这一点的话。
有几种方法可以实现这一点@dB’已经概述了其中一个-使用PG Backups插件导出数据库。这是一个很好的选项,但涉及到一些(琐碎的)手动命令。
我建议使用pg:transfer Heroku CLI插件在一个步骤中传输数据。在封面下,它仍然与使用PG备份时发生的事情非常相似,但它的包装有点好,并且有一些有用的默认值。
从应用程序的目录中,通过安装插件并执行pg:transfer
命令,在本地复制生产数据库(假设为本地PG数据库)。
$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$ heroku pg:transfer
您还可以设置几个选项。有关更多详细信息,请参阅我的文章。
希望能有所帮助!是的,请在开发过程中使用与生产过程中相同的数据库。
不确定这是否是您想要的,但您是否尝试过使用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开发中心的解释中大量复制的。)