地方でリモートワーク

プログラミング、先物、fx,仮想通貨なんでもやります

複数の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

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