我在我的應用程序中使用capistrano rails gem
。當我運行cap production deploy
時,它部署我的更改並同時運行我的db:migrate
並運行我所有的待定遷移。防止capistrano在部署中運行遷移
出於測試原因,我不希望它在部署後運行db:migrate
。
如何防止capistrano
進行部署時運行deploy:migrate
,更重要的是我怎麼能看到我的遷移狀態看到我所有的未決遷移capistrano
運行。
對於發展ENV instnace我可以只運行rake db:migrate:status
及其顯示我哪些遷移是up
或down
並且將/需要運行。
只有namespace/function
我deploy.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 :application
,set :repo_url
,set :passenger_restart_with_touch
,set :deploy_to
,set :bundle_binstubs
,set :linked_files
,set :linked_dirs
個我的版本:
Rails: 4.2.4
Capistrano: 3.5
Thanks @will_in_wi – Rubioli