Я использую capistrano rails gem
в своем приложении. Когда я запускаю cap production deploy
, он развертывает мои изменения и в то же время запускает мой db:migrate
и выполняет все мои ожидающие миграции.
По причине тестирования я не хочу, чтобы он запускался db:migrate
после развертывания.
Как я могу запретить capistrano
запускать deploy:migrate
при развертывании и, что более важно, как я могу видеть свой статус миграции, чтобы увидеть все мои ожидающие миграции capistrano
, которые будут запущены.
Например, в ENV для разработки я могу просто запустить 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