Capistrano развернуть, но вручную запустить миграцию - PullRequest
5 голосов
/ 09 марта 2011

Я использую Capistrano для развертывания приложения Rails.Я думаю о ситуации, когда произошли изменения в базе данных, поэтому я не могу просто cap deploy, потому что миграция должна быть запущена до обновления кода.Я понимаю, что есть cap deploy:migrations, но это немного более автоматически, чем мне бы хотелось.Я хотел бы:

  1. Вставить новый код в каталог релизов, но не обновлять символическую ссылку или перезапустить приложение.
  2. ssh на сервер, запустить rake:db_abort_if_pending_migrations,убедитесь, что миграции, которые я хочу выполнить, являются единственными ожидающими выполнения, а затем запустите rake db:migrate вручную.
  3. Завершите развертывание, обновите символическую ссылку и перезапустите приложение.любой простой способ сделать это с помощью встроенных задач Capistrano, или мне нужно написать свои собственные шаги развертывания, чтобы выполнить это?

    Я должен также упомянуть, что я думаю о случаях (например, добавление столбцов)где миграция может быть запущена на действующей базе данных.Для более деструктивных изменений я понимаю, что во время развертывания мне нужно будет закрыть сайт со страницей обслуживания.

1 Ответ

5 голосов
/ 09 марта 2011

Попробуйте:

  1. cap deploy:update_code

  2. Выполните то, что вы описали, входя на сервер вручную или через cap shell

  3. cap deploy:symlink deploy:restart

См. cap -e deploy:update_code deploy:symlink deploy:restart deploy:shell для получения дополнительной информации.

Надеюсь, это будет полезно для Вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...