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


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.