Обновления Nextcloud без нервов

2 мин чтения

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

Один мажорный шаг за раз

Главное правило: мажорные версии нельзя пропускать. С версии 30 можно перейти на 31, затем на 32, но не сразу с 30 на 32. Это связано с миграциями базы данных, которые рассчитаны на последовательное применение. Если сервер давно не обновлялся, сначала поставьте последний корректирующий релиз текущей ветки, а затем поднимайтесь на одну мажорную версию за раз.

Перед обновлением проверьте несколько вещей:

Само обновление

При установке из архива используйте встроенный обновлятор, а затем выполните миграции:

sudo -u www-data php updater/updater.phar
sudo -u www-data php occ upgrade
sudo -u www-data php occ db:add-missing-indices

В Docker порядок другой: смените тег образа на следующую мажорную версию и пересоздайте контейнер. Миграции запустятся при старте. Смотрите журнал контейнера и не перезапускайте его, пока процесс не закончится, иначе можно получить зависшее обновление. В AIO обновление запускается из интерфейса управляющего контейнера.

После обновления снова откройте «Обзор». Новые версии часто просят добавить индексы или изменить настройки, и эти предупреждения лучше закрыть сразу.

План отката

Откат в Nextcloud — это восстановление из резервной копии, а не установка старых файлов поверх новых. После миграций база данных уже не подходит прежней версии, и понижение версии не поддерживается. Поэтому порядок такой: остановить сервис, вернуть код, config, базу и при необходимости данные из одного снимка, затем запустить старую версию.

Если сервер работает в виртуальной машине или на ZFS, сделайте снимок прямо перед обновлением. Возврат займёт минуту. Такой снимок не заменяет бэкап, потому что хранится рядом с данными, но превращает неудачное обновление из аварии в мелкую неприятность.

Привычка вместо подвига

Заведите в календаре напоминание раз в месяц: посмотреть обновления, прочитать журнал изменений, установить корректирующие релизы. Небольшие регулярные шаги намного безопаснее, чем попытка за вечер догнать версии за два года.