首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一个rake任务中删除测试和开发数据库?

问如何在一个rake任务中删除测试和开发数据库?
EN

Stack Overflow用户
提问于 2012-04-18 01:52:17
回答 3查看 8.4K关注 0票数 4

我试图从一个rake任务中删除测试和开发数据库,如下所示:

代码语言:javascript
复制
task :regenerate do
  Rails.env = "test"
  Rake::Task["db:drop"].invoke
  Rails.env = "development"
  Rake::Task["db:drop"].invoke
end

成功地删除了测试数据库。但是开发数据库并没有被删除。

对如何使这件事奏效有什么想法吗?

注意:这是Rails 3.2.3

更新:

很奇怪,但倒序是有效的:

代码语言:javascript
复制
task :regenerate do
  Rails.env = "development"
  Rake::Task["db:drop"].invoke
  Rails.env = "test"
  Rake::Task["db:drop"].invoke
end

怎么一回事?!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-19 17:46:22

逆转它确实有效,因为在database_tasks.rb中有一些奇怪的代码。

代码语言:javascript
复制
  def each_current_configuration(environment)
    environments = [environment]
    environments << 'test' if environment == 'development'

    configurations = ActiveRecord::Base.configurations.values_at(*environments)
    configurations.compact.each do |configuration|
      yield configuration unless configuration['database'].blank?
    end
  end

如果env是test,它总是添加development。我解决了想要为同时运行的db:rebuild和test执行自定义development任务的问题,方法是先运行development,然后运行test。此外,在运行任务之前,我将调用我的set_env方法,该方法确保设置ActiveRecord::Tasks::DatabaseTasks.env,如果没有该方法,数据库连接似乎不会像预期的那样对环境进行谨慎处理。我尝试了所有其他类型的断开等等,但没有进一步的代码,这是有效的。

代码语言:javascript
复制
def set_env(env)
  Rails.env = env.to_s
  ENV['RAILS_ENV'] = env.to_s
  ActiveRecord::Tasks::DatabaseTasks.env = env.to_s
end

Here is a gist of my full db.rake file with simultaneous multi-environment db:rebuild and db:truncate

票数 4
EN

Stack Overflow用户

发布于 2012-04-18 05:07:12

你可以这样写:

代码语言:javascript
复制
namespace :db do
  desc "Database custom drop"
  task :mydrop do
    system("rake db:drop RAILS_ENV=test")
    system("rake db:drop RAILS_ENV=development")
  end
end
票数 5
EN

Stack Overflow用户

发布于 2014-06-17 02:44:15

在我使用Ruby 2和Rails 3.2.13的系统上,我可以运行rake :drop

这就降低了测试和开发数据库。现在比处理rake任务要容易得多

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10201729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档