将开发数据库中的数据复制到测试数据中是否有任何微不足道的方法?我知道这是一种复制模式并重新创建数据库的方法,但是有没有任何使用开发工具填充测试数据库的rake任务?Rails - 使用开发数据填充测试数据库
回答
您可以MySQL的直接使用:
mysqldump app_development | mysql app_test
您可以使用:
rake db:test:clone
要开发数据库复制到测试。
根本不适用于我。结构已创建,但没有记录被复制。该任务是否需要复制数据?描述并不直接指出。 – mdrozdziel 2010-04-15 12:56:20
它没有为我工作。测试数据库似乎是空的... – 2011-06-15 19:44:48
db:test:clone是db:schema:dump和db:test:prepare的组合,并且实际上并不复制* data * – JohnMetta 2012-07-23 17:35:03
如果你只是想克隆的发展DB的全部,这有什么错只是复制development.sqlite3和重命名test.sqlite3?您可以通过设置可从命令行运行的批处理文件(或您的操作系统上的等效文件)来自动执行此过程。
这将在本地工作,但我只是意识到你可能会想到一个非本地环境,在这种情况下,它可能不会。
的另一种方法,如果你使用的种子(DB/seeds.rb)
首先,添加rake任务,例如以LIB /任务/ test_seed.rake与此代码:
namespace :db do
namespace :test do
task :prepare => :environment do
Rake::Task["db:seed"].invoke
end
end
end
然后当你通过迁移和种子改变了你的数据库结构/内容,您可以运行
rake:db:test:prepare
要复制的模式和种子数据。
所以完整的步骤将是:
rake db:migrate
rake db:seed
rake db:test:prepare
如果你在rake db:seed之后运行'rake db:test:prepare' '它会删除你的种子数据=] – professormeowingtons 2013-07-02 20:43:52
在Postgres,复制数据库,像这样:
创建模板originaldb DATABASE NEWDB OWNER dbuser;
- 1. 使用生产数据库值填充开发数据库
- 2. 使用测试数据填充内存数据库的模式
- 3. 在Rails中使用Sqlite3测试数据库和Postgres开发/生产数据库
- 4. Rails:使用开发数据库进行测试
- 5. 如何用开发数据填充生产数据库(heroku)? (Rails)的
- 6. 使用数据库数据填充jTable
- 7. 使用数据库数据填充图
- 8. 使用外部API请求数据填充rails数据库
- 9. Rails:使用development.sqlite3数据填充Heroku数据库
- 10. jgster将测试数据填充到生产数据库中
- 11. 在rails中使用测试数据库
- 12. Doctrine 2“演示”数据 - 使用开发数据填充表格
- 13. 使用irb填充数据库
- 14. Rails测试数据,在数据库中
- 15. 如何使用mongoid在rails3中填充开发数据库?
- 16. 从rails/postgresql的开发数据库重新创建测试数据库?
- 17. 数据填充数据在数据库
- 18. 用样本数据填充数据库
- 19. 手动填充Rails数据库
- 20. Rails:使用数据填充模态
- 21. 用数据库中的数据填充jquery自动填充
- 22. 不能填充测试的Postgres数据库轨控制台
- 23. 如何在测试数据库中填充表?
- 24. Rails 5测试数据库与开发不同步
- 25. 将Rails 3测试夹具加载到开发数据库中
- 26. 预先填充内存SQLite数据库用于Nhibernate测试
- 27. 从开发数据库中分离Sinatra应用程序的测试数据库?
- 28. 用于测试目的将数据预填充到数据库中
- 29. 使用JRuby与Oracle数据库填充数据库
- 30. Coredata数据库预填充未填充
如果你没有使用mysql,@ j0k到目前为止已经得到了最好的答案:rake db:test:clone && rake db:seed RAILS_ENV ='test' – Krut 2012-12-05 08:48:01