加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails建议添加样本数据的方法

发布时间:2020-12-16 19:28:16 所属栏目:百科 来源:网络整理
导读:我有一个类似于下面的Rake脚本,但我想知道是否有更有效的方法来执行此操作,而不必删除数据库,运行所有迁移,重新设置数据库,然后添加示例数据? namespace :db do desc 'Fill database with sample data' task populate: :environment do purge_database crea
我有一个类似于下面的Rake脚本,但我想知道是否有更有效的方法来执行此操作,而不必删除数据库,运行所有迁移,重新设置数据库,然后添加示例数据?
namespace :db do

  desc 'Fill database with sample data'
  task populate: :environment do
    purge_database
    create_researchers
    create_organisations
    add_survey_groups_to_organisations
    add_members_to_survey_groups
    create_survey_responses_for_members

  end
end


    def purge_database
      puts 'about to drop and recreate database'
      system('rake db:drop')
      puts 'database dropped'
      system('rake db:create')
      system('rake db:migrate')
      system('rake db:seed')
      puts 'Database recreated...'
    end

    def create_researchers
      10.times do
        researcher = User.new
        researcher.email = Faker::Internet.email
        researcher.save!
      end
    end

解决方法

我建议让rake db:seed自给自足.我的意思是,你应该能够多次运行它而不会造成任何损害,同时确保加载所需的任何样本数据.

因此,对于您的研究,db:seed任务应该执行以下操作:

User.destroy_all
10.times do
  researcher = User.new
  researcher.email = Faker::Internet.email
  researcher.save!
end

您可以反复运行此操作,并确保您最终会有10个随机用户.

我认为这是为了发展.在这种情况下,我不会把它放在db:seed中,因为它可能会在生产中运行.但是你可以把它放在一个类似的rake任务中,你可以根据需要重新运行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读