删除实例/字段-Drupal 7

删除实例/字段-Drupal 7,drupal,drupal-7,Drupal,Drupal 7,我目前正在学习的模块有一些困难。作为本模块的一部分,我创建了一些显示在表单上的字段。此表单基于自定义实体 首先,我使用field\u create\u field($field)在字段_config表中创建行。然后我使用字段创建实例($instance)在实例表中创建行,并创建以字段\数据\字段开头的表 我遇到的问题是如何在最后正确删除这些表。我尝试过手动删除(通过hook\u卸载),我尝试过field\u delete\u field,我尝试过使用商业模块内置的remove\u实例钩子。无论哪

我目前正在学习的模块有一些困难。作为本模块的一部分,我创建了一些显示在表单上的字段。此表单基于自定义实体

首先,我使用
field\u create\u field($field)
字段_config
表中创建行。然后我使用
字段创建实例($instance)
在实例表中创建行,并创建以
字段\数据\字段
开头的表

我遇到的问题是如何在最后正确删除这些表。我尝试过手动删除(通过hook\u卸载),我尝试过field\u delete\u field,我尝试过使用商业模块内置的remove\u实例钩子。无论哪种方式,我最终都会得到大量的
field\u deleted\u data\u xxx
表。这些表中甚至没有数据,因为在调用这个函数之前,我创建了一个手动查询来清空主数据表,这个函数似乎创建了这些表


还有其他人遇到过这个问题吗?如何阻止Drupal创建这些表???

您不能阻止Drupal创建这些表,但我相信您可以完全使用这些表及其相关函数来摆脱它们


我真希望我知道你第二个问题的答案(在你上面的评论中),我的直觉是,如果你将字段重新附加到bundle,那么数据将再次自动可用(否则保留已删除的表真的没有意义)但我真的不能确定这一点。

这不是一个“问题”,这是出于设计……删除的数据被存档在这些表中。这些表导致了什么问题,需要您删除它们?这个概念可能对我们有用,但尚未完全确定。可以说,问题在于它创建了大量的表并填满了数据库。一个很好的信息是,当我重新安装模块时,我是否可以轻松地重复使用这些数据?i、 e.是否有一种方法可以快速方便地将所有存储的数据直接转换回字段,并在保持结构的前提下保持以前的关系?感谢提供的信息。我将研究purge_批处理,并尝试了解有关重复使用数据的信息。如果我发现了什么,我会告诉你的!根据需要,在删除字段后,您实际上需要调用
字段\u purge\u batch
两次(至少)。这可以解释我自己尝试这样做时观察到的情况。还要注意,
field\u cron
调用
field\u purge\u batch
,因此,如果您不需要立即清理,您可以将其留给cron在适当的时候处理。