Commit e7bfb7dd authored by Kamil Trzciński's avatar Kamil Trzciński

Swap FK merge_trains to ci_pipelines for LFK

Swaps FK for merge_trains.pipeline_id to ci_pipelines

Changelog: changed
parent cf943277
# frozen_string_literal: true
class RemoveCiPipelinesMergeTrainsPipelineIdFk < Gitlab::Database::Migration[1.0]
disable_ddl_transaction!
def up
with_lock_retries do
execute('LOCK ci_pipelines, merge_trains IN ACCESS EXCLUSIVE MODE')
remove_foreign_key_if_exists(:merge_trains, :ci_pipelines, name: "fk_rails_f90820cb08")
end
end
def down
add_concurrent_foreign_key(:merge_trains, :ci_pipelines, name: "fk_rails_f90820cb08", column: :pipeline_id, target_column: :id, on_delete: :nullify)
end
end
f87eec3c61cfc9dc860fe77af1fbe98c1ea2a9b0dc1b2dbdaaee4276b518af73
\ No newline at end of file
......@@ -31529,9 +31529,6 @@ ALTER TABLE ONLY security_trainings
ALTER TABLE ONLY merge_requests_closing_issues
ADD CONSTRAINT fk_rails_f8540692be FOREIGN KEY (issue_id) REFERENCES issues(id) ON DELETE CASCADE;
ALTER TABLE ONLY merge_trains
ADD CONSTRAINT fk_rails_f90820cb08 FOREIGN KEY (pipeline_id) REFERENCES ci_pipelines(id) ON DELETE SET NULL;
ALTER TABLE ONLY banned_users
ADD CONSTRAINT fk_rails_fa5bb598e5 FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE;
......@@ -656,4 +656,11 @@ RSpec.describe MergeTrain do
source_project: source_project,
status: MergeTrain.state_machines[:status].states[status].value)
end
context 'loose foreign key on merge_trains.pipeline_id' do
it_behaves_like 'cleanup by a loose foreign key' do
let!(:parent) { create(:ci_pipeline) }
let!(:model) { create(:merge_train, pipeline: parent) }
end
end
end
......@@ -134,6 +134,10 @@ ci_pipeline_schedules:
- table: users
column: owner_id
on_delete: async_nullify
merge_trains:
- table: ci_pipelines
column: pipeline_id
on_delete: async_nullify
ci_group_variables:
- table: namespaces
column: group_id
......
......@@ -44,7 +44,6 @@ RSpec.describe 'cross-database foreign keys' do
dast_profiles_pipelines.ci_pipeline_id
dast_site_profiles_pipelines.ci_pipeline_id
external_pull_requests.project_id
merge_trains.pipeline_id
vulnerability_feedback.pipeline_id
vulnerability_occurrence_pipelines.pipeline_id
vulnerability_statistics.latest_pipeline_id
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment