gpt4 book ai didi

ruby-on-rails:播种数据策略(或将测试数据加载到开发人员数据库中)

转载 作者:行者123 更新时间:2023-11-28 19:55:57 25 4
gpt4 key购买 nike

我想经常清除并重新加载我的开发人员数据库 (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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com