1 # Copyright (C) The Arvados Authors. All rights reserved.
3 # SPDX-License-Identifier: AGPL-3.0
7 class AddUuidToApiClientAuthorization < ActiveRecord::Migration[4.2]
8 extend HasUuid::ClassMethods
11 add_column :api_client_authorizations, :uuid, :string
12 add_index :api_client_authorizations, :uuid, :unique => true
14 prefix = Server::Application.config.uuid_prefix + '-' +
15 Digest::MD5.hexdigest('ApiClientAuthorization'.to_s).to_i(16).to_s(36)[-5..-1] + '-'
18 update api_client_authorizations set uuid = (select concat('#{prefix}',
19 array_to_string(ARRAY (SELECT substring(api_token FROM (ceil(random()*36))::int FOR 1) FROM generate_series(1, 15)), '')
23 change_column_null :api_client_authorizations, :uuid, false
27 if column_exists?(:api_client_authorizations, :uuid)
28 remove_index :api_client_authorizations, :uuid
29 remove_column :api_client_authorizations, :uuid