我们的 rails 应用程序(3.2.12)有两个数据库,一个内容数据库和一个用户数据库。如何覆盖部署:迁移(此处为 rakefile ),以便在“上限生产部署:冷”迁移期间相应地为它们的两个目标数据库运行。
本质上它应该在部署期间执行此操作
** 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"
任何帮助都感激不尽。
编辑:我确实在部署命名空间中用我自己的任务替换了任务
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
这会引发错误“未定义的方法‘primary’”。