Terry
Terry

Reputation: 37

Deleting instances / fields - Drupal 7

I am having some difficulties with my module I am currently working on. As part of this module I have created a few fields that appear on a form. This form is based in a custom entity.

First I am using field_create_field($field); to create the row in the field_config table. I am then using field_create_instance($instance); to create the row in the instance table and also create the table that begins with field_data_field.

The problem I am running into is how to remove these tables correctly at the end. I have tried manual deletion (via hook_uninstall), I've tried field_delete_field, I've tried to use the remove_instance hook that is built into the Commerce module. Either way, I end up getting lots of field_deleted_data_xxx tables being created. These don't even have data in them as I created a manual query to empty the main data tables before this function was called that seems to create these tables.

Has anyone else ever run into this problem? How do I stop Drupal from creating these tables??

Upvotes: 0

Views: 2638

Answers (1)

Clive
Clive

Reputation: 36956

You can't stop Drupal from creating them but I believe you can rid yourself of them totally using field_purge_batch and its related functions.

I really wish I knew the answer to your second question (in your comment above), my instinct would be that if you re-attach the field to the bundle then that data would become automatically available again (otherwise it really doesn't make sense to keep hold of the deleted tables) but I really can't be sure about that.

Upvotes: 1

Related Questions