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

ruby-on-rails – 执行db:seed任务以进行开发

发布时间:2020-12-17 02:16:49 所属栏目:百科 来源:网络整理
导读:我有以下任务: namespace :db do desc "Drop,create,migrate,seed the database and prepare the test database for rspec" task :reset_db = :environment do puts "Environment Check: Rails Environment = #{Rails.env}" Rake::Task['db:drop'].invoke R
我有以下任务:

namespace :db do
  desc "Drop,create,migrate,seed the database and prepare the test database for rspec"
  task :reset_db => :environment do
    puts "Environment Check: Rails Environment = #{Rails.env}"
    Rake::Task['db:drop'].invoke
    Rake::Task['db:create'].invoke
    Rake::Task['db:migrate'].invoke
    #Rake::Task['db:fixtures:load'].invoke
    Rake::Task['db:test:prepare'].invoke
    puts 'Seeding Database..'
    Rake::Task['db:seed'].invoke
  end
end

此任务可以正常工作到最后一个db:种子行.
它似乎在使用测试环境并在那里创建数据,而所有其他任务在开发环境中执行.当我通过命令行执行rake db:seed时,它在开发环境中正确运行.

如何防止它在测试环境中运行?

解决方法

db:test:prepare rake任务准备测试数据库,因此设置RAILS_ENV = test.

因此,您的任务在测试环境中运行的原因是因为db:test:prepare实际上会覆盖您的RAILS_ENV变量.

(编辑:李大同)

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

    推荐文章
      热点阅读