有没有更快的方法将我的生产数据库转移到测试应用程序?
目前我正在对我的本地计算机执行 heroku db:pull
然后 heroku db:push --app testapp
但这变得很耗时。我有一些种子数据,但它远不如用我的真实数据进行简单测试那么准确。由于它们都存储在相邻的 AWS 云中,因此必须有更快的方法来移动数据吗?
我考虑过使用 heroku 包,但我注意到 animate 命令不见了?
bundles:animate <bundle> # animate a bundle into a new app
最佳答案
在 Rails 应用程序的暂存、测试和生产环境之间迁移数据库是很常见的。而且 heroku db:pull/push
慢得令人痛苦。到目前为止我发现的最好方法是使用 Heroku PG Backups add-on和 it's free .我按照以下步骤进行迁移
生产数据库到登台服务器:
1) 为生产应用数据库创建备份
heroku pg:backups capture --app production-app
这将从主数据库(通常是 database.yml 中的生产数据库)生成 b001 备份文件
2) 查看所有备份(可选)
heroku pg:backups --app production-app
3) 现在使用 pg:backups restore 命令从生产服务器上的最后一个备份文件填充登台服务器数据库
heroku pg:backups restore $(heroku pg:backups public-url --app production-app) DATABASE_URL --app staging-app
请记住,还原是一种破坏性操作,它会先删除现有数据,然后再用备份文件的内容替换它。
关于ruby-on-rails - 更快地将数据库从一个 heroku 应用程序传输到另一个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3850299/