Drupal 9 отключение модуля в базе данных

Главные вкладки

Аватар пользователя runner12 runner12 20 мая 2023 в 23:26

Доброго времени суток.
Ради интереса на тестовом сайте попробовал отключить модуль из БД, делаю как в документации здесь https://www.drupal.org/node/157632

Запускаю в БД запрос:
DELETE FROM `key_value` WHERE name = 'MODULE_NAME'
Запрос выполняется успешно, захожу в админку - модуль включен. В чем прикол?

Комментарии

Аватар пользователя anemoiaa anemoiaa 23 мая 2023 в 18:37

Может поможет, решение через drush:

Удалить модуль - drush config:delete core.extension module.MYMODULENANME
Выключить модель - drush pm-disable example_module

Не забудьте очистить кэш.

Аватар пользователя OldWarrior OldWarrior 28 мая 2023 в 12:51

runner12 wrote: Запрос выполняется успешно, захожу в админку - модуль включен. В чем прикол?

Кеш, скорее всего.

Вообще - это крайне не рекомендуемый метод выключения модуля. В том числе потому, что не отработают хуки очистки данных модуля. И при повторном включении могут быть проблемы, связанные с дубликатами существующих таблиц.

Аватар пользователя kosskren kosskren 3 июня 2023 в 9:31

Приветствую.

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

1. Выполните sql запрос
SELECT * FROM config WHERE name="core.extension"

2. В полученном результате, удалите ваш модуль, пример с модулем kint:

<?php
unset($result['module']['kint']);
?>

3. Сохраните новый результат обратно в базе:
UPDATE config SET DATA="'.$result.'" WHERE name="core.extension"