Сломанные модули не откатываются
Я пытаюсь разработать модуль D8 с сущностями. Их очень много ^^. Но есть проблема с тем, как D8 обрабатывает создание таблиц в процессе установки. Если определение сущностей неверно, D8 не сможет создать таблицу. Но модуль все равно включен.
Теперь D8 не может удалить модуль. Я пытался drush pm-uninstall
, drush cr
, drush dre
на модуле. Процесс удаления завершается неудачей каждый раз, потому что D8 не может найти таблицу и, очевидно, не осведомлен о неудачной установке модуля.
Единственный способ, который я понял, состоял в том, чтобы создать таблицы с первичным ключом, а затем удалить модуль. Это работает, но отнимает очень много времени. Как я могу принудительно удалить свой модуль, даже если соответствующие таблицы не существуют? И почему D8 игнорирует тот факт, что модуль изначально был установлен неправильно?
2 answers
Это известная ошибка: https://www.drupal.org/node/2563515
В качестве обходного пути удалите определение типа сущности (например, удалив @, чтобы он не анализировал его как аннотацию), очистите кэш, затем удалите.
Вы можете удалить модуль из базы данных из config.extension и удалить большой двоичный объект там. Я знаю, что это очень глупо, но до сих пор у нас есть это решение.