Remove entity's fields
<?php
$entity_type = 'message';
$entity_info = entity_get_info($entity_type);
$bundles = array_keys($entity_info['bundles']);
$bundles[] = 'commerce_order_payment_entered';
$options = array(
'default' => FALSE,
'deleted' => FALSE,
'language' => NULL,
);
$storages = array();
foreach ($bundles as $bundle) {
$instances = _field_invoke_get_instances($entity_type, $bundle, $options);
foreach ($instances as $field_name => $instance) {
$field = field_info_field_by_id($instance['field_id']);
$field_id = $field['id'];
$storages[$field['storage']['type']][$field_id] = $field_id;
}
}
// Field storage backends delete their data.
foreach ($storages as $storage => $fields) {
foreach ($bundles as $bundle) {
$instances = _field_invoke_get_instances($entity_type, $bundle, $options);
foreach ($instances as $instance) {
if (isset($fields[$instance['field_id']])) {
$field = field_info_field_by_id($instance['field_id']);
$table_name = _field_sql_storage_tablename($field);
$revision_name = _field_sql_storage_revision_tablename($field);
// 2 db_delete here with condition by entity_type
}
}
}
}