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.
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'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'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
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
I am deploying my rails app to a linux server and i have some of the rake tasks missing inlcuding rake gems:install and rake db
I am running rails 2.3.4 from GEM.
Why is this?
How do I fix this? can I update somehow?
they are missing from rake -T list
rake apache2 # Build Apache 2 module
rake clean # Remove compiled files
rake clobber # Remove all generated files
rake default # Build everything
rake doc # Generate all documentation
rake doxygen # Generate Doxygen C++ API documentation if ...
rake doxygen:clobber # Remove generated Doxygen C++ API documenta...
rake doxygen:force # Force generation of Doxygen C++ API docume...
rake fakeroot # Create a fakeroot, useful for building nat...
rake nginx # Build Nginx helper server
rake package # Build all the packages
rake package:clean # Remove package products
rake package:debian # Create a Debian package
rake package:force # Force a rebuild of the package files
rake package:gem # Build the gem file passenger-2.2.4.gem
rake rdoc # Build the rdoc HTML Files
rake rdoc:clobber # Remove rdoc products
rake rdoc:force # Force a rebuild of the RDOC files
rake sloccount # Run 'sloccount' to see how much code Passe...
rake test # Run all unit tests and integration tests
rake test:cxx # Run unit tests for the Apache 2 and Nginx ...
rake test:integration # Run all integration tests
rake test:integration:apache2 # Run Apache 2 integration tests
rake test:integration:nginx # Run Nginx integration tests
rake test:oxt # Run unit tests for the OXT library
rake test:rcov # Run coverage tests for the Ruby libraries
rake test:restart # Run the 'restart' integration test infinit...
rake test:ruby # Run unit tests for the Ruby libraries
my rake file contains 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'
How do I add the gems and db rake tasks? and why are they missing?
What is the output of rake -T? This should list all avaiable tasks. In a RoR application, the Rakefile defines your tasks.
You can update gems using gem update.
Check your Capfile, if you are in fact running the gems:install from Capistrano. Apparently, the way to do this is to ensure you're in the right directory internally when running Capistrano.
namespace :gems do
desc "Install gems"
task :install, :roles => :app do
run "cd #{current_path} && #{sudo} rake RAILS_ENV=production gems:install"
end
end
You could also always specify the Rakefile to be sure using the -f [FILE] option in front of the rake command.
You could try updating your Rails install, or reinstalling rails altogether by passing the --force flag. Do you have any other projects for which this command works? Check the rake files from those projects. It looks like your rakefile is the same as mine though... Is this project originally based on an older version of rails? What Gem version are you running? You might need to do a gem update --system. All these are possibilities.
I suppose you could always recreate your project. Annoying but always seems to help worst case scenario.
At least that'll give you an idea of whether or not it's the project or something in some kind of dependencies issue.
If you are using a rails app, you also have rake tasks defined in lib/tasks/SOME_TASK.rake
if you define the SOME_TASK it will then show up when you run rake -T and be an available command.