function _update_7000_field_delete_field
Utility function: delete a field stored in SQL storage directly from the database.
To protect user data, this function can only be used to delete fields once all information it stored is gone. Delete all data from the field_data_$field_name table before calling by either manually issuing delete queries against it or using _update_7000_field_delete_instance().
This function can be used for databases whose schema is at field module version 7000 or higher.
Parameters
$field_name: The field name to delete.
Related topics
1 call to _update_7000_field_delete_field()
- taxonomy_update_7005 in modules/
taxonomy/ taxonomy.install - Migrate {taxonomy_term_node} table to field storage.
File
-
modules/
field/ field.install, line 259
Code
function _update_7000_field_delete_field($field_name) {
$table_name = 'field_data_' . $field_name;
if (db_select($table_name)->range(0, 1)
->countQuery()
->execute()
->fetchField()) {
$t = get_t();
throw new Exception($t('This function can only be used to delete fields without data'));
}
// Delete all instances.
db_delete('field_config_instance')->condition('field_name', $field_name)
->execute();
// Nuke field data and revision tables.
db_drop_table($table_name);
db_drop_table('field_revision_' . $field_name);
// Delete the field.
db_delete('field_config')->condition('field_name', $field_name)
->execute();
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.