2010-08-02 3 views
3

После нескольких месяцев использования Drupal для моих сайтов я заметил вкладку удаления модуля в списке модулей.Должен ли я использовать меню «Удаление модуля»?

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

Благодаря

ответ

7

При удалении модуля, а затем просто отключить и удаления, вы позволяете модуль убирать за собой, в том числе:

  • Удалить таблицы он создал
  • Удаление системных переменных она используется.

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

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

1

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

Простое удаление файлов не является «неправильным», но оно оставит ненужный треск в вашей базе данных. На вкладке «Удалить» вы не удалите файлы модулей для себя, вам нужно сделать это самостоятельно, как вы делали.

0

Вы можете проверить this link - модули могут иметь некоторые дополнительные инструкции по удалению для них, но это выглядит как большинство из них не - вот почему у вас не было никаких проблем :)

2

деинсталляция иногда необходимы, поскольку hook_install() не будет срабатывать, если модуль отключен. Так что, если, например, у модуля есть некоторые поврежденные данные, отключить и повторно включить это не удалит.

Возможно, вы будете в порядке. Однако одно из усталости заключается в следующем.

  1. Отключить
  2. Удалить папку
  3. на более поздний срок пут модуля обратно (не та же версия)
  4. Деинсталляция.

Причина этого заключается в том, что hook_install() и hook_uninstall() должны быть зеркальными отображениями друг друга. Обновить крючки используются, чтобы сохранить схему модуля и настройки в соответствии с тем, что предусмотрено в hook_install(), если вы хотите использовать обновленный модуль для удаления (без обновления), он будет пытаться удалить другую настройку с тем, что ожидается. Риск тонкий, что что-то пойдет не так, но стоит быть осторожным.

3

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

Файлы, используемые с модулем, - это не единственное, что модуль выходит на сайт Drupal; есть таблицы базы данных, переменные Drupal, кешированные значения, которые все еще необходимо удалить, при удалении модуля. Также возможно, что модуль добавляет строки в таблицу базы данных, созданную из другого модуля.
При удалении файлов модулей вы не удаляете ссылки на модуль, содержащийся в системной таблице. Это означает, что если вы копируете один и тот же модуль после его удаления, и вы удалили его таблицы, модуль не собирается повторно создавать необходимые таблицы базы данных.

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

1

Drush делает процесс удаления модуля гораздо более приятным, чем-то вроде:

drush pm-disable [module] // or its shorthand drush dis [module] 
drush pm-uninstall [module] 

В самом деле, Drush делает почти все более приятной (загрузку/установки модулей, занимающуюся установкой профилей, создание БДА резервных копий, и мой личный фаворит, обновляющий всю вашу базу кода). Если вы еще не используете его, я настоятельно рекомендую попробовать.