Running rake commands from rake migrate


#1

Hi there,

How can I run rake commands from a rake migration? I’m looking to run
rake engine_migrate and others commands from a migration in order to
migrate my engines along with my core app. Any advice is appreciated.

Thanks,
Jason


#2

You could just include the task in the dependencies for your new task,
i.e.

—RAILS_ROOT/lib/tasks/app.rake—

desc ‘Migrate entire application’
task :app_migrate => [:migrate, :engine_migrate]

… I think it might actually be that simple.

  • james

#3

hi,

Thanks for the info. It’s not quite what I need though.

I’m switching from login_generator to login_engine and I need to be able
to drop the incompatible user table, then run rake engine_migrate and
rake bootstrap and others to set up user_engine and login_engine.

Thanks,
Jason


#4

I found the answer to my own question and decided to post it.

The answer is here:
http://thinkingincode.blogspot.com/2005/12/adding-options-to-rake-tasks.html

Rake::Task[:engine_migrate].invoke

will run a rake task from within a migration and other ruby code. rake
takes it’s options from ENV[].

to run “rake engine_migrate ENGINE=user” do

ENV[“ENGINE”]=“user”
Rake::Task[:engine_migrate].invoke

FYI,
Jason