function email_update_6001 in Email Field 6
Implemenation of hook_update_N();
Update from 5.x to 6.x
Set all columns to accept NULL values and set empty string values in the database to NULL.
File
- ./
email.install, line 48
Code
function email_update_6001() {
if ($abort = content_check_update('email')) {
return $abort;
}
drupal_load('module', 'content');
$ret = array();
$ret[] = update_sql("UPDATE {" . content_instance_tablename() . "} SET widget_type = 'email_textfield' WHERE widget_type = 'email'");
content_associate_fields('email');
content_clear_type_cache(TRUE);
include_once drupal_get_path('module', 'content') . '/content.install';
$types = content_types_install();
foreach ($types as $type_name => $fields) {
foreach ($fields as $field) {
switch ($field['type']) {
case 'email':
$db_info = content_database_info($field);
$table = $db_info['table'];
foreach ($db_info['columns'] as $column => $attributes) {
$attributes['not null'] = FALSE;
$column = $attributes['column'];
db_change_field($ret, $table, $column, $column, $attributes);
db_field_set_no_default($ret, $table, $column);
$ret[] = update_sql("UPDATE {" . $table . "} SET " . $column . " = NULL WHERE " . $column . " = ''");
}
break;
}
}
}
return $ret;
}