Я использую Capistrano для развертывания приложения Rails. Я' Я думаю о ситуации, когда произошли изменения в базе данных, поэтому я не могу просто ограничить развертывание
, потому что миграции необходимо выполнить до обновления кода. Я понимаю, что есть ограничение deploy: migrations
, но это немного более автоматический процесс, чем хотелось бы. Я бы хотел:
rake: db_abort_if_pending_migrations
, чтобы убедиться, что миграции, которые я хочу запустить, являются единственными ожидающими, затем запустите rake db: migrate
вручную. Есть какой-нибудь простой способ сделать это со встроенными задачами Capistrano, или мне нужно будет написать свои собственные шаги по развертыванию для достижения этой цели?
Я также должен упомянуть, что я думаю о случаях (например, добавление столбцов), когда миграцию можно запустить в действующей базе данных. Я понимаю, что для более деструктивных изменений мне нужно отключить сайт со страницей обслуживания во время развертывания.