views:

1386

answers:

5

hi all

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.

Does anyone know why this is?

How do i fix this ? can i update some how ?

thanks alot richard moss

+1  A: 

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.

A: 

Hi lutz

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 ?

thanks alot Richard Moss

richard moss
hi lutzdid you change something ?can you help with this please ?thanks
richard moss
A: 

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.

Lukas
hi lukasi have just ran gem install rails --no-ri --no-rdoc --force but still missing rake tasks db and gems etci have then ran gem update --system and it says nothing to update.yes this project was origionally based on rails 2.3.3 but has been updated to 2.3.4 and is running from GEM nothing in vendor.Any ideas ?thanks alot
richard moss
just created a new rails app on my server and that has all rake tasks. whats going on!!!!!
richard moss
Just noticed you have the question tagged with capistrano. Might check to be sure cap doesn't have it's own rake tasks defined without connection to rails.
Lukas
thanks Lukas please let me know
richard moss
A: 

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.

Lukas
+2  A: 

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.

Lukas