+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
require 'has_uuid'
-class AddUuidToApiClientAuthorization < ActiveRecord::Migration
+class AddUuidToApiClientAuthorization < ActiveRecord::Migration[4.2]
extend HasUuid::ClassMethods
def up
add_column :api_client_authorizations, :uuid, :string
add_index :api_client_authorizations, :uuid, :unique => true
-
- prefix = Server::Application.config.uuid_prefix + '-' +
+
+ prefix = Server::Application.config.uuid_prefix + '-' +
Digest::MD5.hexdigest('ApiClientAuthorization'.to_s).to_i(16).to_s(36)[-5..-1] + '-'
update_sql <<-EOS
-update api_client_authorizations set uuid = (select concat('#{prefix}', substring(api_token, length(api_token)-4), array_to_string(ARRAY (SELECT substring('0123456789abcdefghijklmnopqrstuvwxyz' FROM (ceil(random()*36))::int FOR 1) FROM generate_series(1, 10)), '')));
+update api_client_authorizations set uuid = (select concat('#{prefix}',
+array_to_string(ARRAY (SELECT substring(api_token FROM (ceil(random()*36))::int FOR 1) FROM generate_series(1, 15)), '')
+));
EOS
change_column_null :api_client_authorizations, :uuid, false