0

我在我的應用程序中使用capistrano rails gem。當我運行cap production deploy時,它部署我的更改並同時運行我的db:migrate並運行我所有的待定遷移防止capistrano在部署中運行遷移

出於測試原因,我不希望它在部署後運行db:migrate

如何防止capistrano進行部署時運行deploy:migrate,更重要的是我怎麼能看到我的遷移狀態看到我所有的未決遷移capistrano運行。

對於發展ENV instnace我可以只運行rake db:migrate:status及其顯示我哪些遷移是updown並且將/需要運行。

只有namespace/functiondeploy.rb

namespace :deploy do 

    after :restart, :clear_cache do 
    on roles(:web), in: :groups, limit: 3, wait: 10 do 
    end 
    end 

    desc "reload the database with seed data" 
    task :seed do 
    puts "\n=== Seeding Database ===\n" 
    on primary :db do 
     within current_path do 
     with rails_env: fetch(:stage) do 
      execute :rake, 'db:seed' 
     end 
     end 
    end 
    end 
end 

deploy.rb了所有常用的東西休息,如:

set :applicationset :repo_urlset :passenger_restart_with_touchset :deploy_toset :bundle_binstubsset :linked_filesset :linked_dirs

個我的版本:

Rails: 4.2.4

Capistrano: 3.5

回答

0

你必須初始化Capistrano的-Rails的寶石有兩種方式。在您的Capfile中,您可以添加require 'capistrano/rails',這將生成資產並運行遷移,或者您可以添加require 'capistrano/rails/assets'和/或require 'capistrano/rails/migrations',這兩者都可以執行一個或另一個,或者同時包含這兩者。

因此,要不運行遷移,請確保require 'capistrano/rails'require 'capistrano/rails/migrations'不在您的Capfile中。

+0

Thanks @will_in_wi – Rubioli

相關問題