Ruby on rails 在rails中填充开发数据库的最佳方法
我需要用数据填充测试开发数据库,例如来自Ruby on rails 在rails中填充开发数据库的最佳方法,ruby-on-rails,Ruby On Rails,我需要用数据填充测试开发数据库,例如来自factorygirl,但我想从rails控制台使用它。 我如何将示例数据放入数据库中,以便从控制台获取它并在那里进行一些测试?我制作了一个gem,它可以像Factory Girl一样定义大量虚假数据。正确配置后,您可以执行以下操作: # Create 100 fake companies 100.times { Company.create_dummy } # Create a single fake company on-demand fake_co
factorygirl
,但我想从rails控制台使用它。我如何将示例数据放入数据库中,以便从控制台获取它并在那里进行一些测试?我制作了一个gem,它可以像Factory Girl一样定义大量虚假数据。正确配置后,您可以执行以下操作:
# Create 100 fake companies
100.times { Company.create_dummy }
# Create a single fake company on-demand
fake_company = Company.create_dummy
另一种方法是使用
db/seeds.rb
工具,或者将fixture加载到开发环境中。它只是在Rails控制台中还是“从控制台”中
我喜欢使用Thor或Rake任务来完成这项任务。我用机械师代替工厂女工
您可能需要检查这个答案
Michael Hartl作为railstutorial.org计划的一部分,对此主题进行了精彩的介绍 他使用了一个名为gem的工具,旨在简化用样本数据填充数据库的过程 例如 也是一个很好的解决方案 下面是我的
lib/tasks/sample\u data.rake
的样子。我使用rakedb: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
检查。希望它能帮助你为什么你需要这个在测试数据库中?让它在开发中为你工作不好吗?通常,测试数据库被重置和重新创建的次数太多,以至于没有必要用大量数据预先填充它。我的问题是,我的意思是开发数据库。我应该把这段代码放在哪里?在
seeds.rb
或sample_data.rb
?@methylseeds.rb
用于应用程序运行所需的真实数据。例如,一份邮政编码、州、国家、税收规则等的清单。@iconoclast在事实发生后差不多7年才回复到今天总比不回复好,嗯?@tadman:时间真有趣。。。但是我从来没有考虑过StackOverflow问题仅仅是基于时间的推移而变得无关紧要,只有当技术变化使这个问题变得无关紧要时,我才会说“从来没有比现在更好”,因为我的评论没有“迟到”的意思(好像我应该在7年前写这篇文章,或者@iconoclast什么的,只是半开玩笑而已。额外的解释总是很感激的,因为它可能会帮助其他人。应该是lib/tasks/sample\u data.rake
…文件后缀错误,rake找不到这个任务!