我的生产环境运行良好。出于测试目的,我想将所有数据库表(包括表格内容!)复制到我的测试环境中。
我尝试了rake db:test:clone
,但这只创建了表结构,而不是内容。
是否有rake任务或类似的东西?
答案 0 :(得分:1)
试试这个:
rake db:test:prepare
答案 1 :(得分:0)
我认为没有你想要的东西,但我不确定你为什么要知道测试环境是如何工作的,那就是你希望它发生。您基本上希望从转储中恢复shell命令。
在测试环境中,您的数据库被分解并在每次测试运行后“基本上”重建。它将加载你的灯具/工厂,然后应用它运行的测试。测试环境的想法是你单独测试所有东西,除非它们是集成测试,它们能够理解之前做过的“其他测试”。
现在要说的是,如果您的生产数据很大,每次构建大量生产数据可能会很糟糕。
如果数据必不可少,请将其复制到灯具或工厂中,并且您可以重复使用相同的数据。
您是否有更小的理由想要整个数据库,而不仅仅是一两个数据?
答案 2 :(得分:0)
您可以使用点击宝石,如下所示: http://railscasts.com/episodes/342-migrating-to-postgresql
答案 3 :(得分:0)
看看:https://github.com/napcs/lazy_developer
您也可以查看:http://blog.robseaman.com/2008/12/2/production-data-to-development
并且
答案 4 :(得分:0)
你可以使用yml_db宝石。只需执行以下操作:
gem'yaml_db'
bundle exec rake db:data:dump RAILS_ENV = production
*请注意,您需要从可以使用database.yml中的设置(或您拥有它们的任何位置)访问生产数据库的控制台执行此操作。我能够为我的prod服务器设置一个ssh隧道,然后在本地运行该命令,但您可能需要从服务器运行它,然后下载/db/data.yml文件。
bundle exec rake db:data:dump RAILS_ENV = development
如果您的数据库不为空并且已迁移,请先运行rake reset
。
阅读this post了解详情。