2015-08-14 6 views
3

У меня есть небольшое приложение, работающее на производственном сервере. В следующем обновлении изменится схема db; это означает, что необходимо изменить схему производственной базы данных, и для ее обработки потребуется некоторое манипулирование данными.Node.js, Express, MySQL - схема обновления

Каков наилучший способ для этого? I.E запускает один скрипт для выполнения этих задач при развертывании на производственный сервер?

Stack: Nodejs Expressjs MySQL с помощью узла MySQL Codeship Elasticbeanstalk

Спасибо!

+0

* «Я запускаю один скрипт для выполнения этих задач при развертывании на производственный сервер» *, что обычно является хорошим вариантом, просто убедитесь, что часть указанного скрипта включает создание резервной копии. –

ответ

3

«Лучший способ» зависит от ваших обстоятельств. Является ли это довольно редко, или это может произойти на регулярной основе? Сколько производственных серверов есть? Существуют ли другие среды, например. для интеграционных тестов, постановки и т. д.? У ваших разработчиков есть собственная среда БД на своих машинах? Влияет ли ваш процесс на непрерывную интеграцию?

Чем сложнее ваш ландшафт, тем лучше использовать такие решения, как предложенный Todd R (Liquibase, Flywaydb).

Если есть только один сервер производства, и он может быть закрыт на техническое обслуживание в течение нескольких часов, то это может быть достаточно, чтобы

  1. График времени простоя обслуживания с заинтересованными сторонами и пользователями
  2. выключит сервер
  3. Создать резервную копию
  4. обновление структуры базы данных и содержимое по мере необходимости
  5. Развертывание обновлений программного обеспечения
  6. Перезапустите сервер
  7. Проверьте результат (вручную или автоматически)
  8. Сообщите ваши заинтересованные стороны и пользователь

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

Рекомендуется использовать сценарии обновления базы данных. Тестирование их один или несколько советов еще больше. Создание резервной копии заранее важно.

0

http://www.liquibase.org/ или http://flywaydb.org/ - довольно «тяжелый» для одноразового использования, но если вам нужно будет снова изменить схему в будущем, возможно, стоит потратить время на изучение одного из них.