api_key => {TYPE => 'varchar(40)', NOTNULL => 1},
description => {TYPE => 'varchar(255)'},
revoked => {TYPE => 'BOOLEAN', NOTNULL => 1, DEFAULT => 'FALSE'},
+ creation_ts => {TYPE => 'DATETIME', NOTNULL => 1},
last_used => {TYPE => 'DATETIME'},
last_used_ip => {TYPE => 'varchar(40)'},
app_id => {TYPE => 'varchar(64)'},
$dbh->bz_add_column('bugs', 'filed_via',
{TYPE => 'varchar(40)', NOTNULL => 1, DEFAULT => "'unknown'"});
+ # Bug 1576667 - dkl@mozilla.com
+ _populate_api_keys_creation_ts();
+
################################################################
# New --TABLE-- changes should go *** A B O V E *** this point #
################################################################
{TYPE => 'INT4', NOTNULL => 1});
}
+sub _populate_api_keys_creation_ts {
+ my $dbh = Bugzilla->dbh;
+
+ # Return if we have already made these changes
+ return if $dbh->bz_column_info('user_api_keys', 'creation_ts');
+
+ $dbh->bz_add_column('user_api_keys', 'creation_ts', {TYPE => 'DATETIME'});
+
+ # We do not have a way to tell when an API key was originally created
+ # so we use the last_used timestamp as the initial creation value.
+ $dbh->do('UPDATE user_api_keys SET creation_ts = COALESCE(last_used, LOCALTIMESTAMP(0))');
+
+ $dbh->bz_alter_column('user_api_keys', 'creation_ts',
+ {TYPE => 'DATETIME', NOTNULL => 1});
+}
+
1;
__END__