function blockreference_update_7202 in Block reference 7.2
Remove old bid index and ensure the moddelta one exists in the field record.
File
- ./
blockreference.install, line 113 - Block Reference install & updates.
Code
function blockreference_update_7202() {
$all_fields = field_info_field_map();
foreach ($all_fields as $field_name => $field_info) {
if ($field_info['type'] == 'blockreference') {
$field = field_info_field($field_name);
$needs_update = FALSE;
$indexes = $field['indexes'];
foreach ($field['indexes'] as $index_name => $index) {
if ($index && count($index) === 1 && reset($index) === 'bid') {
unset($indexes[$index_name]);
$needs_update = TRUE;
}
}
$field['indexes'] = $indexes;
// If the table got dropped before it could be re-created, create it now.
if (!db_table_exists(_field_sql_storage_tablename($field))) {
$storage_type = field_info_storage_types($field['storage']['type']);
module_invoke($storage_type['module'], 'field_storage_create_field', $field);
$needs_update = TRUE;
}
if ($needs_update) {
field_update_field($field);
}
}
}
}