Удаление экземпляров / полей - Drupal 7 - PullRequest
0 голосов
/ 14 октября 2011

У меня проблемы с модулем, над которым я сейчас работаю.В рамках этого модуля я создал несколько полей, которые появляются в форме.Эта форма основана на пользовательском объекте.

Сначала я использую field_create_field($field); для создания строки в таблице field_config.Затем я использую field_create_instance($instance);, чтобы создать строку в таблице экземпляров, а также создать таблицу, которая начинается с field_data_field.

Проблема, с которой я сталкиваюсь, заключается в том, как правильно удалить эти таблицы в конце.Я попытался удалить вручную (через hook_uninstall), я попробовал field_delete_field, я пытался использовать ловушку remove_instance, встроенную в модуль Commerce.В любом случае, я получаю множество field_deleted_data_xxx создаваемых таблиц.В них даже нет данных, так как я создал ручной запрос для очистки основных таблиц данных до вызова этой функции, которая, кажется, создает эти таблицы.

Кто-нибудь еще сталкивался с этой проблемой?Как мне остановить Drupal от создания этих таблиц ??

1 Ответ

1 голос
/ 14 октября 2011

Вы не можете помешать Drupal создавать их, но я считаю, что вы можете полностью избавиться от них, используя field_purge_batch и связанные с ним функции.

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

...