I've got problem with rake tasks. When I tried to execute any rake task I was getting following error: uninitialized constant Rake::DSL. Of course I searched through stackoverflow before this question and I founded some useful posts, for example this one: https://stackoverflow.com/a/6686628/698919
Unfortunately after above fix I am still getting another errors, which are not mentioned in any posts:
rake gems:install
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/file_utils.rb:9: warning: already initialized constant RUBY
/var/lib/gems/1.8/gems/rake-0.9.2.2/lib/rake/file_utils.rb:86: warning: already initialized constant LN_SUPPORTED
rake aborted!
undefined method `deprecate' for #<Rake::Application:0x7f4c3b3eeb38>
/home/arti/domeny/domain/ror/Rakefile:8
My Rakefile:
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake/dsl_definition'
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
I've also tried to downgrade Rake to 0.8.7 version. Afterwards, rake tasks were working properly, but other gems didnt work and I had to get back to newest version of rake (0.9.2.2). I know that I should asap migrate to newest version of Rails, but now I need temporary fix. I can handle without migrations, but I need rake to indexing models through thinking_sphinx.
I've fixed this. Here is proper Rakefile:
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake/dsl_definition'
require 'rake'
include Rake::DSL
require 'rake/testtask'
require 'rdoc/task'
require 'tasks/rails'
begin
require 'thinking_sphinx/tasks'
rescue LoadError
puts "You can't load Thinking Sphinx tasks unless the thinking-sphinx gem is $
end
Related
In my lib folder i have various files which patch various core classes and gems in rails. When i run rails (unicorn, mongrel, the console), the gems get loaded first and then the patches in lib, so that the lib patches override the gems.
When i run a rake task, however, the lib files are loaded before the gems, meaning that the original gem methods override the patches and the patches are effectively ignored.
Does anyone know how i can fix this? My Rakefile just has this:
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
The rake task i'm running is set up like this:
desc "blah"
task :convert_worlds, [:new_instrument] => :environment do |t, args|
...
end
Grateful for any advice - Max
I have just started working on one project, and I have configured my system according to the requirement of the project i.e.
rails v => 2.3.11
ruby v => 1.8.7
When i run command "rake db:create" it comes up with error as
rake aborted!
no such file to load -- rake/rdoctask
/home/jeet/Desktop/Projects/myapp/Rakefile:8
here i am adding the content of Rakefile
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
I have checked the answer of this, but its not working for me.
Please suggest me a better solution
I have seen the same problem.
Possible solution: by adding gem 'rdoc' to my Gemfile and then run bundle install.
I am using Rails 2.3.14 and Ruby 1.8.7 (used RVM to install them) but my default set is Rails 3.2 and Ruby 1.9.3. I created an empty gemset but when I list the gems available I get this:
gem list --local
bundler (1.2.3)
rake (10.0.2)
rubygems-bundler (1.1.0)
rvm (1.11.3.5)
So I just went ahead and created a Rails 2.3.14 app and wanted to create my database by running:
raked db:create
and I get this
rake aborted!
no such file to load -- rake/rdoctask
../Rakefile:8:in `require'
../Rakefile:8
../.rvm/gems/ruby-1.8.7-p370/bin/ruby_noexec_wrapper:14
(See full trace by running task with --trace)
My Rakefile is
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
require 'tasks/rails'
So how can I fix this problem? I'm guessing it's the rake version (mine is currently 10.0.2) from what I read the version of rake commonly used with the Rails 2.3 seires is 0.9.+
instead of require 'rake/rdoctask' do require 'rdoc/task'
rdoctask was deprecated quite a while ago
I'm trying to figure out why my non-environment rake tasks, like:
rake routes
takes so long to run. It takes over a minute as it loads the complex environment of my application. This is a Rails 2.3.12 application, and my Rakefile is as follows:
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/switchtower.rake, and they will automatically be available to Rake.
require 'thread'
require(File.join(File.dirname(__FILE__), 'config', 'boot'))
require 'rake'
require 'rake/testtask'
require 'rdoc/task'
require 'delayed/tasks'
require 'tasks/rails'
calling rake routes does depend on the rails stack and because auf this, the environment is loaded.
what you can do, is use a third party gem like sextant: https://github.com/schneems/sextant/
I'm developing an application using rails 2.3.5, gitorious and deploy with vlad, the OS is Linux Mint 9 Isadora.
vlad:setup and vlad:update are ok.
But when I vlad:migrate and have the same error than if I ssh on the server and try a rake gems:install
rake aborted!
no such file to load -- ya2yaml
/var/www/path/to/releases/20100622030150/Rakefile:10
(See full trace by running task with --trace)
My config/environment.rb is good:
RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
Rails::Initializer.run do |config|
config.gem "haml"
I have a custom task in lib/tasks/db_fixtures.rake that requires ya2yaml:
namespace :export do
desc 'Create YAML test fixtures from data in an existing database.
Defaults to development database. Set RAILS_ENV to override.'
require 'rubygems'
require 'ya2yaml'
task :fixtures => [:environment] do
When I rename this file it is not loaded by rake and I don't have the error anymore when I rake gems:install
So my guess is that it looks like rake gems:install tries to load the libs in my custom tasks before installing the gems for some reason and throw me an error.
What would be a solution?
Thanks,
this might work? delay the requires on your rake task by moving them into the task itself
task :fixtures => [:environment] do
require 'rubygems'
require 'ya2yaml'
# ...
by default running rake tasks 'loads' all of the rake files