我想经常清除并重新加载我的开发人员数据库 (Ruby on rails)。
当然,我可以通过网页手动添加数据,但我想知道是否有人有任何针对此类测试的策略。
(我已经进行了单元、功能和集成测试,仅供引用)
谢谢
最佳答案
在 db
目录中创建一个 seed.yml
文件。为您要创建的每个模型添加一个 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
关于ruby-on-rails:播种数据策略(或将测试数据加载到开发人员数据库中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2389269/