【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が実行されるはず