Назад к блогу

Как удалить contrib-модуль multiversion в Drupal 8.7 или более поздних версиях

2021-11-092 мин чтения

Если вы планируете обновление с Drupal 8 до Drupal 9, я настоятельно рекомендую удалить contrib-модуль multiversion перед обновлением ядра до последней версии 9.x.

Некоторые из contrib-модулей, требующих модуль multiversion, включают: Deploy, Workspace, Replication. Эти модули также будут автоматически удалены в рамках этого процесса.

1. Установите Multiversion Remover.

Модуль Multiversion Remover играет важную роль в этом процессе, поэтому нам нужно его установить:

composer require 'drupal/multiversion_remover:1.0.x-dev@dev'
drush en multiversion_remover -y

2. Удалите сущности replication, replication_log и workspace.
Перейдите по следующим URL-адресам и удалите все сущности:
* https://YOUR-SITE_URL/admin/modules/uninstall/entity/replication
* https://YOUR-SITE-URL/admin/modules/uninstall/entity/replication_log
* https://YOUR-SITE-URL/admin/modules/uninstall/entity/workspace

3. Реализуйте хук обновления.
Скопируйте код из этого репозитория и вставьте его в хук обновления в одном из ваших пользовательских модулей.

Очистите кэши из бэкенда https://YOUR-SITE-URL/admin/config/development/performance или с помощью терминала drush cr

4. Запустите обновления Drupal
Нам нужно выполнить реализованный на предыдущем шаге хук обновления, поэтому мы должны запустить обновления Drupal из браузера https://YOUR-SITE-URL/update.php или с помощью терминала drush updb -y

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

Помните, это должно быть сделано до завершения процесса обновлений.
URL-адреса для проверки того, были ли сущности воссозданы во время выполнения обновлений:
* https://YOUR-SITE_URL/admin/modules/uninstall/entity/replication
* https://YOUR-SITE-URL/admin/modules/uninstall/entity/replication_log
* https://YOUR-SITE-URL/admin/modules/uninstall/entity/workspace

Скорее всего, вы получите ошибку, это нормально.

5. Выполните функции multiversion remover.
Вам нужно выполнить следующие команды, чтобы завершить процесс удаления:

drush php-eval "multiversion_remover_uninstall_multiversion_suite()"
drush php-eval "_multiversion_remover_purge_multiversion_kvp()"

6. Удалите модуль Multiversion Remover.
На этом этапе модуль Multiversion Remover выполнил свою работу, и мы можем удалить его из проекта.

drush pmu multiversion_remover -y
composer remove drupal/multiversion_remover