Как мне просто запустить миграцию в Капистрано - PullRequest
1 голос
/ 15 декабря 2010

Можно ли заставить Capistrano обновить развернутое в настоящий момент приложение с помощью миграции (это все, что было зафиксировано как изменение со времени последнего развертывания), обновить развернутое приложение только этим кодом (без запуска нового полного развертывания) и просто запустить миграцию?

1 Ответ

0 голосов
/ 17 декабря 2010

Развертывание - это то, чем оно является, развертывание.

Вы просите развернуть без развертывания (!?)

ИМХО, ваша проблема больше связана с SCM (svn, git,и т. д.), чем в Капистрано.Вы, вероятно, хотите развернуть часть своего кода (одну миграцию), но не все, что зафиксировано в trunk / master.Что вам нужно сделать, так это выполнить ветвление / метку для развертывания и выполнить развертывание из этой ветки / метки.

Например, если я использую svn, я всегда добавляю эти строки в мой deploy.rb:

set(:tag) { Capistrano::CLI.ui.ask("Tag to deploy: ") }
set(:repository) { "#{repository_root}/tags/#{tag}" }

таким образом я могу развернуть определенный тег, и мой SVN четко определил мой производственный код.

В вашем случае процедура будет такой:

  • ветвь вашегопоследняя производственная версия
  • применить любые изменения к этой ветви (желаемая миграция)
  • пометить ее (например, prod-with_my_desired_migration)
  • развернуть этот тег, включая cap deploy: migrate

У каждого инструмента есть своя цель, и мы должны использовать мощь каждого из них.

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