Ruby on rails Capistrano迁移到两个数据库

Ruby on rails Capistrano迁移到两个数据库,ruby-on-rails,ruby,ruby-on-rails-4,capistrano,Ruby On Rails,Ruby,Ruby On Rails 4,Capistrano,我最近在我的开发Rails站点中添加了第二个数据库,并制作了一个定制的rake任务“SysConfig:db:migrate”,如下所示: namespace :SysConfig do task :set_custom_db_config_paths do ENV['SCHEMA'] = 'db_sysconfig/schema.rb' Rails.application.config.paths['db'] = ['db_sysconfig'] Rails.ap

我最近在我的开发Rails站点中添加了第二个数据库,并制作了一个定制的rake任务“SysConfig:db:migrate”,如下所示:

namespace :SysConfig do

  task :set_custom_db_config_paths do
    ENV['SCHEMA'] = 'db_sysconfig/schema.rb'
    Rails.application.config.paths['db'] = ['db_sysconfig']
    Rails.application.config.paths['db/migrate'] = ['db_sysconfig/migrate']
    Rails.application.config.paths['db/seeds'] = ['db_sysconfig/seeds.rb']
    Rails.application.config.paths['config/database'] = ['config/database_sysconfig.yml']
  end

  namespace :db do
    task :migrate => :set_custom_db_config_paths do
      Rake::Task["db:migrate"].invoke
    end

    ...

  end
end
这将获取db_sysconfig/migrate文件夹中的所有迁移,并将它们部署到sysconfig数据库。但是,我正在努力解决如何在Capistrano的deploy.rb文件中设置此任务,以便在部署到staging/production时使用。有人知道如何在capistrano中设置应用程序配置路径吗

卡皮斯特拉诺'2.15.4' Rails“4.0.2”
Ruby“2.1.0”

我在deploy.rb文件中的deploy命名空间中添加了一个新任务:

namespace :deploy do
  ...
  task :SysConfig, roles: :app do
    run "cd #{current_path}; RAILS_ENV=#{rails_env} rake SysConfig:db:migrate"
  end
end

after "deploy:migrate", "deploy:SysConfig"
然后,我将其设置为在deploy:migrate任务运行后运行,这导致它同时成功迁移到两个数据库