function user_update_7020

Add changed field to users table.

Related topics

File

modules/user/user.install, line 937

Code

function user_update_7020() {
    // The "changed" column was renamed to "access" in system_update_136(), and
    // the "changed" index on "access" column may persist on old MySQL databases.
    if (db_index_exists('users', 'changed')) {
        if (!db_index_exists('users', 'access')) {
            db_add_index('users', 'access', array(
                'access',
            ));
        }
        db_drop_index('users', 'changed');
    }
    $spec = array(
        'type' => 'int',
        'not null' => TRUE,
        'default' => 0,
        'description' => 'Timestamp for when user was changed.',
    );
    $keys = array(
        'indexes' => array(
            'changed' => array(
                'changed',
            ),
        ),
    );
    // In some cases sites have added the changed field themselves e.g. via a
    // contrib or custom module. Ensure the field uses core's new schema.
    if (db_field_exists('users', 'changed')) {
        db_change_field('users', 'changed', 'changed', $spec, $keys);
    }
    else {
        db_add_field('users', 'changed', $spec, $keys);
        // Set the initial value for existing users.
        db_update('users')->expression('changed', 'created')
            ->execute();
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.