複数のrakeコマンドを同時に行うrakeタスクを作る

Railsで開発しているときに、migrationファイルを変更したり、コンソールでゴニョゴニョしてデータをいじって(sandboxで入ればいいのだが)、とりあえずすっきりしたいときに毎回複数のrakeコマンドを入力しています。
具体的には

rake db:migrate:reset
rake db:seed # or rake db:seed_fu

さらに現在はrssリーダーをつくっているので、rssをpullするrakeタスクまでが加わります。

これが面倒になってきたので、複数タスクを同時に実行してくれるrakeタスクを作成しました。

# lib/tasks/rebuild_db_all.rake
namespace :db_tasks do
desc "Rebuild database"
task :rebuild, [] => :environment do
raise "Not allowed to run on production" if Rails.env.production?
Rake::Task['db:drop'].execute
Rake::Task['db:create'].execute
Rake::Task['db:migrate'].execute
Rake::Task['db:seed'].execute
Rake::Task['sync:feeds'].execute
end
end

これで

rake db_tasks:rebuild

と打つだけで、

rake db:migrate:reset
rake db:seed
rake sync:feeds

コマンドを打ち込んだことと同じになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です