【Rails/seed_fu】railsでcapistrano deploy時に、seed fuを毎回自動で走らせたい
環境: rails5.1 ruby 2.4.1
seed fu いいよね。便利で。 capistrano deploy時に、seed fuを毎回自動で走らせたい時があったので その方法をメモ
注意 今回はstaging環境で、初期開発時に、社内テスト触る環境を毎回作るのがまんどくさくて、自動化した あまり やらないほうが良い気もする
自動化
lib/capistrano/tasks/seed_fu.rake
に 実行するコマンドを記述
namespace :seed_fu do task :apply do if fetch(:rails_env) == :staging on roles(:db) do within release_path do with rails_env: fetch(:rails_env) do execute :bundle, :exec, "rails db:seed_fu" end end end end end end
あとはdeploy.rbに下記追記
namespace :deploy do # hogehoge task :apply_seedfu do on primary :db do invoke 'seed_fu:apply' end end #hugahuga end after 'deploy:migrating', 'deploy:apply_seedfu'
これで、migrationが実行されたあとに、seed_fuが実行されるはず