gitlab-org--gitlab-foss/db/migrate/20201202155913_add_primary_...

32 lines
1.0 KiB
Ruby

# 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