Изменения базы данных миграции Heroku

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

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

Обновить

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


person Dru    schedule 24.11.2011    source источник


Ответы (3)


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

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

person Jayson Lane    schedule 24.11.2011
comment
Я даже не знал, что у героку есть такая опция. как-нибудь попробую - person Dru; 24.11.2011

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

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

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

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

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

person John Hinnegan    schedule 24.11.2011
comment
Спасибо. Не могли бы вы прояснить, что вы подразумеваете под «тестированием» в среде разработки на героку? Предлагаете мне создать еще один проект heroku, загрузить туда код (предварительные изменения) и развернуть изменения? - person Dru; 24.11.2011

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

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

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

техническое обслуживание героку: выкл.

person Rameshwar Vyevhare    schedule 24.11.2011