Всегда и во всем я руководствуюсь простым правилом: — Неважно какой движок, сайт, сервис или версию я обновляю, важно наличие полной резервной копии. Даже если создание резервной копии в несколько раз по времени превышает накат обновления или мелкой правки (случаи с другими движками, системами).

Итак, если обновляю боевой сайт с изменением версии ядра:

1. Делаю самый актуальный дамп базы и выгружаю на локальный сервак;

2. На локальном серваке поднимаю копию сайта, но с чистым движком. Это проще, если все файлы, не относящиеся к движку, содержатся в сборке проекта. 

3. Если сборки проекта нет, создаю ее, наполняю всеми необходимыми файлами, шаблонами и т.п. и фиксирую ее в приватном репозитории. (https://gitlab.com/, https://bitbucket.org/ and etc.).

4. На локальном сайте обязательно включаю режим разработчика в config.php и открываю главную страницу сайта. В этот момент платформа определяет наличие изменений версий и накатывает обновления в базы данных.

5. Тестирую локальную версию сайта. Кстати, в версии платформы 0.6.0 разработал механизм покрытия ядра и модулей тестами. Так что, в скором будущем с выходом версии 0.6.0 кол-во багов будет на порядок меньше.

6. На боевом сервере останавливаю сайт и в его настройках (config.php) включаю режим ReadOnly.

7. Очередной раз делаю актуальную копию дампа базы данных и так же делаю полную копию текущих файлов сайта.

8. Заливаю новую версию платформы на боевой сервер, отключаю режим ReadOnly и открываю главную страницу сайта. Сайт обновлен.

Если обновление не содержит изменение версии ядра, то все практически тоже самое, за исключением создания полной копии файлов сайта — просто заливаю платформу с заменой.

Вроде ничего не забыл...

Если что не понятно, спрашивайте.

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

0
31 Августа 2015, 09:25