function hook_field_storage_update_field
hook_field_storage_update_field($field, $prior_field, $has_data)
Update the storage information for a field.
This is invoked on the field's storage module from field_update_field(), before the new field information is saved to the database. The field storage module should update its storage tables to agree with the new field information. If there is a problem, the field storage module should throw an exception.
Parameters
$field: The updated field structure to be saved.
$prior_field: The previously-saved field structure.
$has_data: TRUE if the field has data in storage currently.
Related topics
File
- modules/field/field.api.php, line 558
- Hooks provided by the Field module.
Code
function hook_field_storage_update_field($field, $prior_field, $has_data) { if (!$has_data) { // There is no data. Re-create the tables completely. $prior_schema = _field_sql_storage_schema($prior_field); foreach ($prior_schema as $name => $table) { db_drop_table($name, $table); } $schema = _field_sql_storage_schema($field); foreach ($schema as $name => $table) { db_create_table($name, $table); } } else { // There is data. See field_sql_storage_field_storage_update_field() for // an example of what to do to modify the schema in place, preserving the // old data as much as possible. } drupal_get_schema(NULL, TRUE); }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/modules!field!field.api.php/function/hook_field_storage_update_field/7.x