Изменения базы данных Heroku Migrate - PullRequest
3 голосов
/ 24 ноября 2011

Я внес изменения в свое приложение, включая добавление моделей и добавление столбцов в уже существующую модель.Я использую рельсы 3.1 и знаю, что перед развертыванием я должен предварительно скомпилировать свои ресурсы.После запуска git push heroku master и heroku rake db:migrate следует ли ожидать каких-либо ошибок?

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

Обновление

Кажется, все в порядке.Push & Rake DB сделал это.

Ответы [ 3 ]

3 голосов
/ 24 ноября 2011

Одна вещь, на которую вы, возможно, захотите взглянуть, - это перевод приложения в режим обслуживания, пока вы выполняете обновление. Вместо того, чтобы поражать пользователей непредсказуемыми результатами, вы можете свести к минимуму путаницу, появив сообщение об обслуживании. Вы также можете настроить его.

Вы можете прочитать о том, как здесь: http://devcenter.heroku.com/articles/maintenance-mode

0 голосов
/ 24 ноября 2011

Рекомендуется переводить сайт в режим обслуживания при развертывании

обслуживание герою: на

как только вы закончите с этим, можете

обслуживание герою: выкл

0 голосов
/ 24 ноября 2011

Во-первых, я бы протестировал это в среде разработчика (все еще на Heroku).Это единственный реальный способ убедиться, что у вас не будет ошибок.

Во-вторых, Heroku пытается предварительно скомпилировать для вас ваши ресурсы, поэтому обычно вам ничего не нужно делать.Тем не менее, он работает только в «базовом случае», любые изменения, которые вы делаете, обычно нарушают его, и часто ваше приложение будет искать «all.css» в производстве.Поэтому вам, вероятно, придется попробовать его, а затем устранять ошибки из журналов в каждом конкретном случае.

В-третьих, внесение изменений во время работы пользователей всегда увеличивает риск.Если вы действительно заботитесь, я бы сделал это в нерабочее время.Изменение версии ruby ​​Я особенно избегаю пиковых развертываний.

Последнее замечание: если вам нужно выполнить миграцию для работы нового кода, у вас будут прерывания для активных пользователей.Я не знаю ни одного способа, чтобы нажать и мигрировать в одной команде.Всегда будет небольшая разница во времени между отправкой и переносом, в которой, если вы обслуживаете живой трафик, будет новый код со старой схемой, что, вероятно, вызывает ошибки.

Надеюсь, это поможет.

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