From b9652d8e4dc8544766c9371057be72cc26fe3a4b Mon Sep 17 00:00:00 2001 From: Imre Farkas Date: Mon, 29 Oct 2018 16:06:45 +0000 Subject: [master] Persist only SHA digest of PersonalAccessToken#token --- ...42237_schedule_digest_personal_access_tokens.rb | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 db/post_migrate/20180913142237_schedule_digest_personal_access_tokens.rb (limited to 'db/post_migrate') diff --git a/db/post_migrate/20180913142237_schedule_digest_personal_access_tokens.rb b/db/post_migrate/20180913142237_schedule_digest_personal_access_tokens.rb new file mode 100644 index 00000000000..36be819b245 --- /dev/null +++ b/db/post_migrate/20180913142237_schedule_digest_personal_access_tokens.rb @@ -0,0 +1,28 @@ +class ScheduleDigestPersonalAccessTokens < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + BATCH_SIZE = 10_000 + MIGRATION = 'DigestColumn' + DELAY_INTERVAL = 5.minutes.to_i + + disable_ddl_transaction! + + class PersonalAccessToken < ActiveRecord::Base + include EachBatch + + self.table_name = 'personal_access_tokens' + end + + def up + PersonalAccessToken.where('token is NOT NULL').each_batch(of: BATCH_SIZE) do |batch, index| + range = batch.pluck('MIN(id)', 'MAX(id)').first + BackgroundMigrationWorker.perform_in(index * DELAY_INTERVAL, MIGRATION, ['PersonalAccessToken', :token, :token_digest, *range]) + end + end + + def down + # raise ActiveRecord::IrreversibleMigration + end +end -- cgit v1.2.3