Надоело мне вручную обновлять Drupal 9. Решил я это дело немного автоматизировать. Если Drupal на Linux, то удобно обновлять через Composer. А если на Windows, то... А что мешает нам поставить Composer в Windows?
Делаем резервную копию сайта и базы данных.
Устанавливаем Composer: Composer — установка на Windows
Переводим сайт в режим обслуживания. На скрине видно, что доступно обновление безопасности.
Очищаем кэш.
Приостанавливаем антивирус, чтобы файлы не зажимал.
Запускаем на сервере командную строку. Переходим в рабочую директорию сайта. Если ранее не использовали Composer, то обновляем сначала ядро:
composer update drupal/core --with-dependencies
Теперь обновляем проект:
composer update "drupal/core-*" --with-all-dependencies
Начинается обновление пакетов.
Один пакет не смог обновиться. Такое бывает в Windows, зажаты файлы или папки, освобождаем их перезагрузкой IIS. По идее нужно перед обновлением запустить в следующий раз.
iisreset
И снова обновляем проект:
composer update "drupal/core-*" --with-all-dependencies
Тот пакет, что не хотел обновляться, обновился. Ещё раз:
composer update "drupal/core-*" --with-all-dependencies
Nothing to modify in lock file Nothing to install, update or remove
Проект обновился.
Установлена последняя версия ядра Drupal 9. Для обновления базы запускаем update.php.
Ложка дёгтя
Composer обновил файл web.config, просто заменил его и стёр все мои настройки. Пришлось вручную восстанавливать из предыдущей версии.