在rails中填充开发数据库的最佳方法
我需要用数据填充测试开发数据库,例如从factorygirl
,但我想从rails控制台使用它。
我如何将示例数据放入db中,以便我可以从控制台获取它并在那里进行一些测试?
Faker也是一个很好的解决方案。
这是我的lib/tasks/sample_data.rake
样子。 我用rake db:populate
运行它。
使用随机信息创建50个条目。
require 'faker' namespace :db do desc "Fill database with sample data" task :populate => :environment do Rake::Task['db:reset'].invoke 50.times do |n| name = Faker::Company.name year = 1900+rand(111) rating = 1+rand(10) watched = (1 == rand(2) ? true : false) imdb_id = rand(1000000) Movie.create!(:name => name, :year => year, :rating => rating, :watched => watched, :imdb_id => imdb_id) end end end
我做了一个像test Girl一样的gem test_dummy来定义大量假数据。 正确配置后,您可以执行以下操作:
# Create 100 fake companies 100.times { Company.create_dummy } # Create a single fake company on-demand fake_company = Company.create_dummy
另一种方法是使用db/seeds.rb
工具或将fixtures加载到开发环境中。
作为railstutorial.org计划的一部分,Michael Hartl对此主题进行了精彩的介绍。
他使用名为Factory Girl的gem,旨在简化使用样本数据填充数据库的过程。
例如
http://ruby.railstutorial.org/chapters/user-microposts#sec:sample_microposts
https://github.com/railstutorial/sample_app/blob/master/lib/tasks/sample_data.rake
它只是在Rails控制台中还是只是“从控制台”?
我喜欢使用Thor或Rake任务来做到这一点。 而不是工厂女孩我使用机械师。
您可能想查看此答案
Rails:良好的Rspec2示例用法? (另外:Cucumber,Pickle,Capybara)