标签: rake

46
推荐指数
2
解决办法
2万
查看次数

如何在rake任务中强制执行RAILS_ENV?

我有这个小耙任务:

namespace :db do 
  namespace :test do 
    task :reset do 
      ENV['RAILS_ENV'] = "test" 
      Rake::Task['db:drop'].invoke
      Rake::Task['db:create'].invoke
      Rake::Task['db:migrate'].invoke
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

现在,当我执行时,它将忽略我试图硬编码的RAILS_ENV.如何使此任务按预期工作

ruby rake ruby-on-rails

45
推荐指数
4
解决办法
4万
查看次数

简单的rails rake任务拒绝运行时出现错误"不知道如何构建任务",为什么?

我有这个简单的rake任务拒绝运行.我只是不明白为什么它看起来正确.谁可以指出我可能非常简单的错误?谢谢!

/lib/tasks/reindex.rb:

namespace :db do

  desc "Tire reindex profiles"

  task :reindex => :environment do
    system "cd #{Rails.root} && rake environment tire:import CLASS='Profile' FORCE=true"
  end

end
Run Code Online (Sandbox Code Playgroud)

错误:

rake db:reindex
rake aborted!
Don't know how to build task 'db:reindex'
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails rake-task

44
推荐指数
3
解决办法
4万
查看次数

如何在Rake中检测导致弃用警告的原因

当我这样做bundle exec rake -T(或bundle exec rake)时,我会收到弃用警告:

Andrews-Air:nabu agrimm$ bundle exec rake --trace -T
[DEPRECATION] `last_comment` is deprecated.  Please use `last_description` instead.
[DEPRECATION] `last_comment` is deprecated.  Please use `last_description` instead.
[DEPRECATION] `last_comment` is deprecated.  Please use `last_description` instead.
[DEPRECATION] `last_comment` is deprecated.  Please use `last_description` instead.
[DEPRECATION] `last_comment` is deprecated.  Please use `last_description` instead.
[DEPRECATION] `last_comment` is deprecated.  Please use `last_description` instead.
[DEPRECATION] `last_comment` is deprecated.  Please use `last_description` instead.
[DEPRECATION] `last_comment` is deprecated.  Please use `last_description` …
Run Code Online (Sandbox Code Playgroud)

ruby debugging rake ruby-on-rails

44
推荐指数
5
解决办法
1万
查看次数

如何在Heroku上使用db:drop和rake db:create?

可能重复:
如何清空heroku中的数据库

我在Heroku上有一个Postgres数据库.它是免费测试版之一.在本地,在测试时,我经常运行rake db:drop && rake db:create && rake db:migrate作为重置数据库的方法.

但是,当我尝试在Heroku上运行它时,我收到错误:

Couldn't drop mydatabaseid : #<PG::Error: FATAL:  permission denied for database "postgres"
  DETAIL:  User does not have CONNECT privilege.
Run Code Online (Sandbox Code Playgroud)

呃,好的,我怎么能完全重置我的数据库,迁移和一切?

database postgresql rake heroku

43
推荐指数
1
解决办法
3万
查看次数

如何找到rake任务的源文件?

我知道您可以通过键入来查看所有可能的rake任务

rake -T
Run Code Online (Sandbox Code Playgroud)

但我需要知道一项任务到底是做什么的.从输出中,我如何找到实际具有任务的源文件?例如,我正在尝试查找db:schema:dump任务的源代码.

ruby rake ruby-on-rails

42
推荐指数
3
解决办法
8067
查看次数

Rake任务中未初始化的常量

这是设置:

新的Rails应用程序,然后将此test_rake.rake放在lib/tasks中:

task :testclass do
  HelloClass.hello
end`
Run Code Online (Sandbox Code Playgroud)

把hello_class.rb放在app/models中,或者放在lib /中用这行:config.autoload_paths += %W(#{config.root}/lib)添加到config.rb

class HelloClass
  def self.hello
    puts 'hello_class'
  end
end
Run Code Online (Sandbox Code Playgroud)

rake testclass给出了这个错误:

/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing'
/Users/name/Sites/Rails/indexapp/lib/tasks/test_class.rake:5:in `block (2 levels) in <top (required)>'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:636:in `block in execute'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:597:in `block in invoke_with_call_chain'
/Users/name/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2029:in `block (2 levels) in top_level'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2029:in `block in top_level'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2001:in `block in run'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/Users/name/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/bin/rake:31:in `<top …
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails-3

42
推荐指数
2
解决办法
2万
查看次数

Ruby on Rails:调试rake任务

当我写debugger它不开始:

NoMethodError: undefined method `run_init_script' for Debugger:Module
from /usr/local/lib/ruby/gems/1.8/gems/ruby-debug-base-0.10.3/lib/ruby-debug-base.rb:239:in `debugger'
from (irb):4
Run Code Online (Sandbox Code Playgroud)

如果我跑rake my:task --debugger,它会立即将我返回到控制台.如何调试rake任务?

ruby debugging rake ruby-on-rails ruby-debug

41
推荐指数
5
解决办法
3万
查看次数

是否可以进行交互式Rake任务?

我想运行一个Rake任务,要求用户输入.

我知道我可以在命令行上提供输入,但是我想询问用户是否确定他们想要继续执行特定操作,以防他们错误输入提供给Rake任务的其中一个值.

rake

41
推荐指数
3
解决办法
1万
查看次数

你如何跳过失败的迁移?(rake db:migrate)

我似乎无法找到允许我跳过迁移的选项或任何内容.

我知道你在想什么:"你永远不应该那样做......"

我需要跳过一个迁移,它对我的​​开发数据库中不存在的特定用户记录进行更改.我不想更改迁移,因为它不是我应该使用的源代码的一部分.有没有办法跳过迁移或跳过失败的迁移?

提前致谢!

rake ruby-on-rails rails-migrations

40
推荐指数
4
解决办法
3万
查看次数