我想经常清除并重新加载我的开发人员数据库(Ruby on rails)。
当然,我可以通过网页手动添加数据,但我想知道是否有人对这种类型的测试有任何策略。
(我已经有单元、功能和集成测试,仅供参考)
谢谢
我想经常清除并重新加载我的开发人员数据库(Ruby on rails)。
当然,我可以通过网页手动添加数据,但我想知道是否有人对这种类型的测试有任何策略。
(我已经有单元、功能和集成测试,仅供参考)
谢谢
在目录中创建一个seed.yml
文件。db
为您要创建的每个模型添加一个 YAML 文档。该文档应包含哈希列表。每个散列应该包含模型属性。
users:
- login: jake
password: jake123
password_confirmation: jake123
first_name: Jake
last_name: Driver
- login: Jane
password: jane123
password_confirmation: jane123
first_name: Jane
last_name: McCain
categories:
products:
在你的 seed.rb 文件中
seed_file = File.join(Rails.root, 'db', 'seed.yml')
config = YAML::load_file(seed_file)
User.transaction do
config.keys.each{ |key| key.classify.constantize.create(config[key]) }
end
我发现修改 YML 文件中的种子数据更容易。我构建的应用程序由不同的团队部署。他们也喜欢这种方法。
为了清除数据,我在 lib\tasks 目录中有一个 rake 任务。我将 rake 任务运行为app:flush
.
namespace :app do
desc "Flush all the seed data "
task :flush => :environment do
config = YAML::load_file(File.join(Rails.root, 'db', 'seed.yml'))
User.transaction do
config.keys.each{ |table| truncate_table(table)}
end
end
end
是时候看看“夹具”和“播种数据”了;-) 我不足以给你一个清晰的解释,但是谷歌搜索这两个键应该会给你所有你需要的东西。
检查这些:http ://derekdevries.com/2009/04/13/rails-seed-data/
http://lptf.blogspot.com/2009/09/seed-data-in-rails-234.html