Commit fede1c11 authored by webchick's avatar webchick
Browse files

#777100 by jhodgdon: Fixed hook_field_storage_update_field() is not documented.

parent d4379fbd
......@@ -452,6 +452,42 @@ function hook_field_insert($entity_type, $entity, $field, $instance, $langcode,
function hook_field_update($entity_type, $entity, $field, $instance, $langcode, &$items) {
}
/**
* 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.
*
* @param $field
* The updated field structure to be saved.
* @param $prior_field
* The previously-saved field structure.
* @param $has_data
* TRUE if the field has data in storage currently.
*/
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);
}
/**
* Define custom delete behavior for this module's field types.
*
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment