diff options
Diffstat (limited to 'db/migrate/20201202155913_add_primary_key_to_merge_request_context_commit_diff_files.rb')
-rw-r--r-- | db/migrate/20201202155913_add_primary_key_to_merge_request_context_commit_diff_files.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/db/migrate/20201202155913_add_primary_key_to_merge_request_context_commit_diff_files.rb b/db/migrate/20201202155913_add_primary_key_to_merge_request_context_commit_diff_files.rb new file mode 100644 index 00000000000..90c7b2731c8 --- /dev/null +++ b/db/migrate/20201202155913_add_primary_key_to_merge_request_context_commit_diff_files.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +class AddPrimaryKeyToMergeRequestContextCommitDiffFiles < ActiveRecord::Migration[6.0] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def up + execute(<<~SQL) + DELETE FROM merge_request_context_commit_diff_files + WHERE merge_request_context_commit_id IS NULL; + + DELETE FROM merge_request_context_commit_diff_files df1 + USING merge_request_context_commit_diff_files df2 + WHERE df1.ctid < df2.ctid + AND df1.merge_request_context_commit_id = df2.merge_request_context_commit_id + AND df1.relative_order = df2.relative_order; + + ALTER TABLE merge_request_context_commit_diff_files + ADD CONSTRAINT merge_request_context_commit_diff_files_pkey PRIMARY KEY (merge_request_context_commit_id, relative_order); + SQL + end + + def down + execute(<<~SQL) + ALTER TABLE merge_request_context_commit_diff_files + DROP CONSTRAINT merge_request_context_commit_diff_files_pkey, + ALTER COLUMN merge_request_context_commit_id DROP NOT NULL + SQL + end +end |