You are here

function link_update_1 in Link 5

Same name and namespace in other branches
  1. 6.2 link.install \link_update_1()
  2. 6 link.install \link_update_1()

Removed link.module created tables, move data to content.module tables

File

./link.install, line 13

Code

function link_update_1() {
  $ret = array();
  include_once drupal_get_path('module', 'content') . '/content.module';
  include_once drupal_get_path('module', 'content') . '/content_admin.inc';
  $fields = content_fields();
  foreach ($fields as $field) {
    switch ($field['type']) {
      case 'link':
        $columns = array(
          'url' => array(
            'type' => 'varchar',
            'length' => 255,
            'not null' => TRUE,
            'default' => "''",
          ),
          'title' => array(
            'type' => 'varchar',
            'length' => 255,
            'not null' => TRUE,
            'default' => "''",
          ),
          'attributes' => array(
            'type' => 'mediumtext',
            'not null' => FALSE,
          ),
        );
        content_alter_db_field(array(), array(), $field, $columns);
        $db_info = content_database_info($field);
        if ($field['multiple']) {
          $ret[] = update_sql('INSERT INTO {' . $db_info['table'] . '} (vid, delta, nid, ' . $field['field_name'] . '_url, ' . $field['field_name'] . '_title, ' . $field['field_name'] . "_attributes) SELECT vid, delta, nid, field_url, field_title, attributes FROM {node_field_link_data} WHERE field_name = '" . $field['field_name'] . "'");
        }
        else {
          $ret[] = update_sql('UPDATE {' . $db_info['table'] . '} c, {node_field_link_data} l SET c.' . $field['field_name'] . '_url = l.field_url, c.' . $field['field_name'] . '_title = l.field_title, c.' . $field['field_name'] . "_attributes = l.attributes WHERE l.field_name = '" . $field['field_name'] . "' AND c.vid = l.vid AND c.nid = l.nid");
        }
    }
  }
  $ret[] = update_sql('DROP TABLE {node_field_link_data}');
  db_query('DELETE FROM {cache}');
  return $ret;
}