From db0f150516404c6e7951bc961eab45be11b5fcf5 Mon Sep 17 00:00:00 2001 From: Oswaldo Ferreira Date: Fri, 6 Jul 2018 12:23:51 -0300 Subject: Reschedule DeleteDiffFiles until there is none left to remove --- .../20180619121030_enqueue_delete_diff_files_workers.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'db') diff --git a/db/post_migrate/20180619121030_enqueue_delete_diff_files_workers.rb b/db/post_migrate/20180619121030_enqueue_delete_diff_files_workers.rb index 9e96aaf50a0..100bd2a8f4e 100644 --- a/db/post_migrate/20180619121030_enqueue_delete_diff_files_workers.rb +++ b/db/post_migrate/20180619121030_enqueue_delete_diff_files_workers.rb @@ -3,14 +3,24 @@ class EnqueueDeleteDiffFilesWorkers < ActiveRecord::Migration DOWNTIME = false MIGRATION = 'DeleteDiffFiles'.freeze + TMP_INDEX = 'tmp_partial_diff_id_with_files_index'.freeze disable_ddl_transaction! def up + unless index_exists_by_name?(:merge_request_diffs, TMP_INDEX) + add_concurrent_index(:merge_request_diffs, :id, where: "(state NOT IN ('without_files', 'empty'))", name: TMP_INDEX) + end + BackgroundMigrationWorker.perform_async(MIGRATION) + + # We don't remove the index since it's going to be used on DeleteDiffFiles + # worker. We should remove it in an upcoming release. end def down - # no-op + if index_exists_by_name?(:merge_request_diffs, TMP_INDEX) + remove_concurrent_index_by_name(:merge_request_diffs, TMP_INDEX) + end end end -- cgit v1.2.1