Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to modify capistrano deploy to automatically run migrations in Rails 3.0

Right now, I have to run cap deploy and cap deploy:migrations if there are migrations to be run.

how I modify the cap deploy task to run migrations.

like image 329
Amal Kumar S Avatar asked Feb 04 '11 07:02

Amal Kumar S


2 Answers

Just add:

after "deploy:update_code", "deploy:migrate"

to your config/deploy.rb.

like image 167
nickgrim Avatar answered Nov 02 '22 10:11

nickgrim


Running "cap deploy:migrations" is equivalent to running "cap deploy" && subsequently "cap deploy:migrate" in one command.

To view the description for deploy:migrations, just use the -e option:

cap -e deploy:migrations

will give you this output:

cap deploy:migrations

Deploy and run pending migrations. This will work similarly to the 'deploy' task, but will also run any pending migrations (via the 'deploy:migrate' task) prior to updating the symlink. Note that the update in this case it is not atomic, and transactions are not used, because migrations are not guaranteed to be reversible.

like image 10
Steve Loo Avatar answered Nov 02 '22 10:11

Steve Loo