Да, field_delete_instance () - это функция для удаления экземпляров полей.
Обратите внимание, что field_delete_instance()
автоматические вызовы, field_delete_field()
если нет оставшихся экземпляров, так field_delete_instance()
что, скорее всего, все, что вам когда-либо понадобится.
_update_7000_field_delete_instance()
предназначен для основных функций обновления. Пример: в функции обновления x_update_7000()
вы используете field_delete_instance()
. Затем x_update_7001()
вы изменяете {field_config}
таблицу противоречивым образом и, field_delete_instance()
очевидно, также должны быть изменены.
Но теперь x_update_7000()
вызов to field_delete_instance()
приведет к ошибке, потому что таблица все еще в старой структуре. Однако ситуация для добавленных модулей отличается, так как они всегда должны выполняться после всех обновлений ядра и, следовательно, должны работать с самой последней версией ядра.
Но это шаблон, который вы можете использовать для своих собственных функций API, которые вы используете в функциях обновления.
Кроме того, эти функции _update не выполняют ловушки, потому что результат непредсказуем (например, потому что модуль, для которого выполняется обновление, может быть отключен).