Як вирішити помилку "У файловій системі відсутній наступний модуль?"


9

Я отримую таку помилку на сайті Drupal 8.

У файловій системі відсутній наступний модуль

Виглядає так, ніби спеціальний модуль був встановлений і видалений без його видалення.

Як я можу виправити цю помилку?


Чи використовуєте ви керування конфігурацією на сайті?
Адріан Сид Альмагюр

Так, я використовую це
Кевін,

Деякі заздалегідь вирішили проблему? Хочу в кінці знати, як ви вирішите проблему, це може прийти і до мене в будь-який проект.
Адріан Сид Альмагер

У Drupal 8.7.3 я отримую "у файловій системі відсутній наступний модуль: php in drupal_get_filename ()", але коли я намагаюся встановити модуль php, я отримую помилку щодо нього, яка вже існує в ядрі. Помилка заважає мені нічого не видаляти. Вчора я оновив до 8.7.3, а сьогодні до 8.5.3 і не можу похитнути помилку. Кеш очищався щоразу, і всі модулі, про які я знаю, були відновлені. Я бачу нотатки про Drush, але як встановити його на 8.7.3?
WilliamK

Відповіді:


11

Якщо у вас консоль Drupal, то найшвидший спосіб виправити це - створити модуль з тим же найменуванням машини, а потім видаліть його.

$ drupal generate:module

Потім введіть ім'я машини у відповідне підказку та приймайте за замовчуванням все інше.

$ drush pm-uninstall

Потім ви можете видалити щойно створений модуль з файлової системи та продовжити свій день.

(Зверніть увагу: вам може знадобитися зберегти згенерований модуль, інакше помилка повернеться. У цьому випадку, якщо вам потрібно встановити модуль contrib з тим самим іменем, видаліть створений модуль після додавання модуля contrib. Потім очистіть кеш. )


2
Це був найпростіший варіант після того, як запит SQL вище не працював.
Кріс Чарлтон

Це допомогло вирішити мою помилку, оскільки модуль не знайдено.
Акшай Сован

Якщо комусь потрібна допомога з встановленням консолі Drupal, я знайшов цю сторінку корисною. Майте на увазі, ви хочете встановити запуск консолі Drupal глобально, а консоль Drupal локально (у корені проекту інсталяції Drupal).
Думд

10

Якщо припустити, що ви видалили неважливий користувальницький модуль, який не потребує будь-якої рутини видалення для запуску, ви можете використовувати наступну команду Drush.

  • Drupal 7

    drush sql-query "DELETE from system where type = 'module' AND name = 'MYMODULE';"
  • Друпал 8

    drush sql-query "DELETE FROM key_value WHERE collection='system.schema' AND name='MYMODULE';"

Див. Розділ Як виправити "У наступній модулі відсутня файлова система ..." Попереджувальні повідомлення для отримання додаткової інформації та альтернатив.


1
Я кілька разів намагався, і це для D8 не працює принаймні для d8.7. Я б порекомендував рішення нижче із створенням фіктивного модуля, а потім видаленням.
Марко Блажекович

3

Тепер за допомогою модуля управління конфігурацією конфігурація модулів зберігається у файлі core.extension.yml.

Перейдіть до редагування файлу і спробуйте знайти відсутній модуль з файлової системи, потім видаліть рядок та імпортуйте config ( drush cim).

Якщо це не працює, але ви знайшли модуль, створіть модуль ще раз (лише папку та дійсний .info.yml файл) та запустіть drush cimкоманду знову . Це видалить модуль.


4
Це працює, але правильний спосіб - відновити модуль та видалити його. Якщо цей модуль надає схеми, конфігурацію тощо, він залишиться в системі, і вам доведеться чистити його вручну в іншому випадку.
Бердір

1
@Berdir, якщо ви не можете знайти спеціальний модуль, ми можемо зробити іншу справу?
Адріан Cid Almaguer

Насправді, тоді вам потрібно зробити це вручну, як було запропоновано вище, за допомогою drush cedit або імпорту / експорту у файл core.extension.
Бердір

0

Те, як я це зафіксував, було за допомогою барабану та композитора. Отримайте модуль із вимогою, встановіть та видаліть із барабаном та видаліть разом із композитором.

composer require drupal/missing_module
drush en missing_module
drush pmu missing_module
composer remove drupal/missing_module

! Крок з, drush enмабуть, не є необхідним

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.