2014-01-20 30 views
0

我最近添加了第二個數據庫,我的發展Rails的網站,和一個定製rake任務,「SYSCONFIG:分貝:遷移」,這可以看到下面:Capistrano的遷移到兩個數據庫

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文件中設置此任務,以便在部署到分段/生產時使用。有誰知道我可以如何設置capistrano中的應用程序配置路徑?

Capistrano的 '2.15.4' Rails的4.0.2「 紅寶石 '2.1.0'

回答

0

我在deploy.rb文件增加了新的任務部署命名空間:

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" 

然後,我將它設置爲在部署完成後運行:遷移任務,這導致它同時成功遷移到兩個數據庫。