Запретить capistrano выполнять миграцию при развертывании

Я использую 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


person Rubioli    schedule 15.11.2016    source источник


Ответы (1)


У вас есть два способа инициализации Capistrano-Rails Gem. В свой Capfile вы можете добавить require 'capistrano/rails', который будет генерировать активы и запускать миграции, или вы можете добавить require 'capistrano/rails/assets' и/или require 'capistrano/rails/migrations', которые будут делать одно или другое, или оба, если включены оба.

Итак, чтобы не запускать миграции, убедитесь, что require 'capistrano/rails' и require 'capistrano/rails/migrations' отсутствуют в вашем Capfile.

person will_in_wi    schedule 17.11.2016
comment
Спасибо @will_in_wi - person Rubioli; 18.11.2016