Rails アプリ (3.2.12) には、コンテンツ データベースとユーザー データベースの 2 つのデータベースがあります。deploy:migrate (ここではrakefile ) をオーバーライドして、「cap production deploy:cold」の間に移行が両方のターゲット データベースに対して適切に実行されるようにするにはどうすればよいですか。
基本的に、デプロイ中にこれを行う必要があります
** transaction: commit
* 2013-10-16 02:26:15 executing `deploy:migrate'
* executing "cd /home/deployer/apps/project/releases/20131015152439 && bundle exec rake RAILS_ENV=production db:migrate"
* executing "cd /home/deployer/apps/project/releases/20131015152439 && bundle exec rake RAILS_ENV=production user:db:migrate"
どんな助けでも大歓迎です。
編集: deploy 名前空間でタスクを自分のタスクに置き換えました
namespace :deploy do
set :migration_role, fetch(:migration_role, :db)
task :migrate do
on primary fetch(:migration_role) do
within release_path do
with rails_env: fetch(:rails_env) do
execute :rake, "db:migrate"
execute :rake, "user:db:migrate"
end
end
end
end
after 'deploy:updated', 'deploy:migrate'
end
これにより、「undefined method `primary'」というエラーがスローされます。