views:

15

answers:

1

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,

A: 

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

house9
Sorry for my late answer.Delaying the requires fixed the problem.Thank you.
mazhout