Вручную отключить модуль

В Drupal 7 я могу вручную отредактировать таблицу {system} в базе данных, чтобы отключить модуль stubbon. На моем сайте Drupal 8 эта таблица ушла.

Как вручную отключить модуль в Drupal 8?

8
31 голос | спросил bumpaw 14 Mayam13 2013, 01:54:25

8 ответов


21

Данные таблицы Drupal 7 system теперь хранятся в таблице config в Drupal 8 по параметру core.extension.

Решение 1: Обновить конфигурацию

Вы можете запустить следующий код с помощью drush eval или использовать условие модуля Devel для Execute PHP Code.

//Прочитайте конфигурацию.
$ module_data = \ Drupal :: config ('core.extension') -> get ('module');

//Отключите модули, которые вам не нужны.
снята с охраны ($ module_data [ 'migrate_ui']);
снята с охраны ($ module_data [ 'migrate_api']);

//Записываем конфигурацию.
\ Drupal :: configFactory () -> getEditable ('core.extension') -> set ('module', $ module_data) -> save ();

Решение 2: отредактируйте таблицу конфигурации, если вы не можете выполнить PHP

Если сайт поврежден из-за проблемного модуля и вы даже не можете запустить PHP-код, возможно, вы можете напрямую редактировать таблицу config.

В строке в таблице config, где name = "core.extension" и отредактируйте BLOB-столбец data. data - это сериализованный массив PHP, в котором вам нужно удалить модуль, из которого вы хотите избавиться от ключа module конфигурации.

Решение 3: быстрое и грязное решение

  • Удалить модуль из файловой системы
  • Обрезать таблицу cache_config

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

Очистка кэша

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

ответил Jigar Mehta 29 22016vEurope/Moscow11bEurope/MoscowTue, 29 Nov 2016 20:38:20 +0300 2016, 20:38:20
17

Сделайте это:

rm -rf modules /your_stubborn_module
rm -rf sites /default /files /php
ответил manish_s 13 PMpMon, 13 Apr 2015 12:00:11 +030000Monday 2015, 12:00:11
14
  • Вручную отредактируйте таблицу config, где name = 'core.extension' и удалите модуль из блока данных, который является сериализованным массивом.
  • Знайте также уменьшить длину массива модуля (... s: 6: "module"; a: ЗДЕСЬ; {...)
  • Обрезайте таблицу cache_config из phpmyadmin или с помощью командной строки.
ответил valli 8 J0000006Europe/Moscow 2015, 13:07:30
3

Рассмотрим использование Drush. Drupal 8 все еще определяет, что должно быть «отключить модули». Существует текущее обсуждение , если этот параметр должен быть или он должен быть удален.

ответил Mołot 14 Mayam13 2013, 10:27:11
3

В Drupal 8 попробуйте удалить модуль из папки вашего модуля и запустите rebuild.php.

Попробуйте drush pm-uninstall module-name.

ответил Smalution 1 PM00000010000005531 2016, 13:01:55
2

Я попробовал все остальные ответы, но продолжал получать сообщение об ошибке drupal. Чтобы решить эту проблему, мне пришлось удалить строку из таблицы key_value (искать имя модуля в столбце имен)

ответил diesonne 6 J0000006Europe/Moscow 2016, 10:51:34
1

Для этого есть модуль. Этот модуль был опубликован в августе 2013 года на drupal.org . В случае, если кто-то нуждается.

Отключить модули

Как указано на странице этого модуля,

  

Drupal 8 удалил возможность отключать модули по многим причинам.    См. # 1199946: отключенные модули повреждены вне ремонта, поэтому   Функциональность «отключить» должна быть   удалены и многие другие проблемы в   очередь различных основных модулей и модулей.

     

Этот модуль возвращает возможность (временно) отключать модули   из пользовательского интерфейса или с Drush. Обратите внимание, что нет никакой гарантии для вашего   содержимого, конфигурации или даже вашего сайта после отключения модуля.

ответил CodeNext 1 PM00000010000001731 2016, 13:20:17
0

Вот как я вручную удалил модуль с именем «better_messages» из моего экземпляра Drupal 8. Как только я установил модуль «better_messages», сайт опустился. Таким образом, не удалось удалить модуль из пользовательского интерфейса. У меня нет Drush. Я сделал много настроек, заданных на форумах, но так оно и помогало мне.

1 Переименовал модуль в old_better_messages в папке модулей.

  1. Через URL-адрес запустите http: //IP: port /foldername /rebuild.php . Это обеспечило возвращение сайта, но только в режиме только для чтения. Я не мог выполнять действия администратора или редактировать статьи.

  2. Используется следующая команда для удаления записи из базы данных

УДАЛИТЬ ОТ key_value WHERE collection = 'system.schema' AND name = 'better_messages';

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

  1. Затем, используя визуализатор БД, я удалил записи из всех таблиц, начинающихся с кеша.

Это решило проблему. Это основано на моей интерпретации https://www.drupal.org/node/2487215

ответил Soumya Rajiv 20 WedEurope/Moscow2017-12-20T11:49:52+03:00Europe/Moscow12bEurope/MoscowWed, 20 Dec 2017 11:49:52 +0300 2017, 11:49:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132