From 35a19ededce4f1b58d5deb2d0b0deb6e574acb86 Mon Sep 17 00:00:00 2001
From: Simon Tomlinson <stomlinson@gitlab.com>
Date: Fri, 9 Jun 2023 16:06:54 -0500
Subject: [PATCH 1/2] Make migrations skipped in production a no-op

Migrations
db/post_migrate/20230524135750_replace_ci_job_artifacts_foreign_key.rb
db/post_migrate/20230524135803_replace_ci_running_builds_foreign_key.rb
db/post_migrate/20230524135815_replace_ci_job_variables_foreign_key.rb
db/post_migrate/20230524135828_replace_p_ci_builds_metadata_foreign_key.rb
db/post_migrate/20230524135840_replace_p_ci_runner_machine_builds_foreign_key.rb

were skipped in production as part of
https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888.

Mark them as no-op so that they do not execute in other environments.

Changelog: changed
---
 ...50_replace_ci_job_artifacts_foreign_key.rb | 17 ++++------------
 ...3_replace_ci_running_builds_foreign_key.rb | 17 ++++------------
 ...15_replace_ci_job_variables_foreign_key.rb | 17 ++++------------
 ...eplace_p_ci_builds_metadata_foreign_key.rb | 20 ++++---------------
 ..._p_ci_runner_machine_builds_foreign_key.rb | 20 ++++---------------
 5 files changed, 20 insertions(+), 71 deletions(-)

diff --git a/db/post_migrate/20230524135750_replace_ci_job_artifacts_foreign_key.rb b/db/post_migrate/20230524135750_replace_ci_job_artifacts_foreign_key.rb
index 8bd4dadc891a608d..6cf17bd0f74cb1ef 100644
--- a/db/post_migrate/20230524135750_replace_ci_job_artifacts_foreign_key.rb
+++ b/db/post_migrate/20230524135750_replace_ci_job_artifacts_foreign_key.rb
@@ -4,21 +4,12 @@ class ReplaceCiJobArtifactsForeignKey < Gitlab::Database::Migration[2.1]
   disable_ddl_transaction!
 
   def up
-    add_concurrent_foreign_key :ci_job_artifacts, :p_ci_builds,
-      name: 'temp_fk_rails_c5137cb2c1_p',
-      column: [:partition_id, :job_id],
-      target_column: [:partition_id, :id],
-      on_update: :cascade,
-      on_delete: :cascade,
-      validate: false,
-      reverse_lock_order: true
-
-    prepare_async_foreign_key_validation :ci_job_artifacts,
-      name: 'temp_fk_rails_c5137cb2c1_p'
+    # This migration was skipped in the ci database on gitlab.com as part of
+    # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
   end
 
   def down
-    unprepare_async_foreign_key_validation :ci_job_artifacts, name: 'temp_fk_rails_c5137cb2c1_p'
-    remove_foreign_key :ci_job_artifacts, name: 'temp_fk_rails_c5137cb2c1_p'
+    # This migration was skipped in the ci database on gitlab.com as part of
+    # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
   end
 end
diff --git a/db/post_migrate/20230524135803_replace_ci_running_builds_foreign_key.rb b/db/post_migrate/20230524135803_replace_ci_running_builds_foreign_key.rb
index 0e2d2bd34d0dadf3..f6134108c277c819 100644
--- a/db/post_migrate/20230524135803_replace_ci_running_builds_foreign_key.rb
+++ b/db/post_migrate/20230524135803_replace_ci_running_builds_foreign_key.rb
@@ -4,21 +4,12 @@ class ReplaceCiRunningBuildsForeignKey < Gitlab::Database::Migration[2.1]
   disable_ddl_transaction!
 
   def up
-    add_concurrent_foreign_key :ci_running_builds, :p_ci_builds,
-      name: 'temp_fk_rails_da45cfa165_p',
-      column: [:partition_id, :build_id],
-      target_column: [:partition_id, :id],
-      on_update: :cascade,
-      on_delete: :cascade,
-      validate: false,
-      reverse_lock_order: true
-
-    prepare_async_foreign_key_validation :ci_running_builds,
-      name: 'temp_fk_rails_da45cfa165_p'
+    # This migration was skipped in the ci database on gitlab.com as part of
+    # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
   end
 
   def down
-    unprepare_async_foreign_key_validation :ci_running_builds, name: 'temp_fk_rails_da45cfa165_p'
-    remove_foreign_key :ci_running_builds, name: 'temp_fk_rails_da45cfa165_p'
+    # This migration was skipped in the ci database on gitlab.com as part of
+    # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
   end
 end
diff --git a/db/post_migrate/20230524135815_replace_ci_job_variables_foreign_key.rb b/db/post_migrate/20230524135815_replace_ci_job_variables_foreign_key.rb
index c846c7f437cf66cb..dc2b0abe0a9f9678 100644
--- a/db/post_migrate/20230524135815_replace_ci_job_variables_foreign_key.rb
+++ b/db/post_migrate/20230524135815_replace_ci_job_variables_foreign_key.rb
@@ -4,21 +4,12 @@ class ReplaceCiJobVariablesForeignKey < Gitlab::Database::Migration[2.1]
   disable_ddl_transaction!
 
   def up
-    add_concurrent_foreign_key :ci_job_variables, :p_ci_builds,
-      name: 'temp_fk_rails_fbf3b34792_p',
-      column: [:partition_id, :job_id],
-      target_column: [:partition_id, :id],
-      on_update: :cascade,
-      on_delete: :cascade,
-      validate: false,
-      reverse_lock_order: true
-
-    prepare_async_foreign_key_validation :ci_job_variables,
-      name: 'temp_fk_rails_fbf3b34792_p'
+    # This migration was skipped in the ci database on gitlab.com as part of
+    # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
   end
 
   def down
-    unprepare_async_foreign_key_validation :ci_job_variables, name: 'temp_fk_rails_fbf3b34792_p'
-    remove_foreign_key :ci_job_variables, name: 'temp_fk_rails_fbf3b34792_p'
+    # This migration was skipped in the ci database on gitlab.com as part of
+    # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
   end
 end
diff --git a/db/post_migrate/20230524135828_replace_p_ci_builds_metadata_foreign_key.rb b/db/post_migrate/20230524135828_replace_p_ci_builds_metadata_foreign_key.rb
index 6ad2a932a3a65d11..17429dc21860efe5 100644
--- a/db/post_migrate/20230524135828_replace_p_ci_builds_metadata_foreign_key.rb
+++ b/db/post_migrate/20230524135828_replace_p_ci_builds_metadata_foreign_key.rb
@@ -6,24 +6,12 @@ class ReplacePCiBuildsMetadataForeignKey < Gitlab::Database::Migration[2.1]
   disable_ddl_transaction!
 
   def up
-    add_concurrent_partitioned_foreign_key :p_ci_builds_metadata, :p_ci_builds,
-      name: 'temp_fk_e20479742e_p',
-      column: [:partition_id, :build_id],
-      target_column: [:partition_id, :id],
-      on_update: :cascade,
-      on_delete: :cascade,
-      validate: false,
-      reverse_lock_order: true
-
-    prepare_partitioned_async_foreign_key_validation :p_ci_builds_metadata,
-      name: 'temp_fk_e20479742e_p'
+    # This migration was skipped in the ci database on gitlab.com as part of
+    # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
   end
 
   def down
-    unprepare_partitioned_async_foreign_key_validation :p_ci_builds_metadata, name: 'temp_fk_e20479742e_p'
-
-    Gitlab::Database::PostgresPartitionedTable.each_partition(:p_ci_builds_metadata) do |partition|
-      execute "ALTER TABLE #{partition.identifier} DROP CONSTRAINT IF EXISTS temp_fk_e20479742e_p"
-    end
+    # This migration was skipped in the ci database on gitlab.com as part of
+    # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
   end
 end
diff --git a/db/post_migrate/20230524135840_replace_p_ci_runner_machine_builds_foreign_key.rb b/db/post_migrate/20230524135840_replace_p_ci_runner_machine_builds_foreign_key.rb
index 7ac4b79d0dba0ad1..d6ffc569e9b704a7 100644
--- a/db/post_migrate/20230524135840_replace_p_ci_runner_machine_builds_foreign_key.rb
+++ b/db/post_migrate/20230524135840_replace_p_ci_runner_machine_builds_foreign_key.rb
@@ -6,24 +6,12 @@ class ReplacePCiRunnerMachineBuildsForeignKey < Gitlab::Database::Migration[2.1]
   disable_ddl_transaction!
 
   def up
-    add_concurrent_partitioned_foreign_key :p_ci_runner_machine_builds, :p_ci_builds,
-      name: 'temp_fk_bb490f12fe_p',
-      column: [:partition_id, :build_id],
-      target_column: [:partition_id, :id],
-      on_update: :cascade,
-      on_delete: :cascade,
-      validate: false,
-      reverse_lock_order: true
-
-    prepare_partitioned_async_foreign_key_validation :p_ci_runner_machine_builds,
-      name: 'temp_fk_bb490f12fe_p'
+    # This migration was skipped in the ci database on gitlab.com as part of
+    # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
   end
 
   def down
-    unprepare_partitioned_async_foreign_key_validation :p_ci_runner_machine_builds, name: 'temp_fk_bb490f12fe_p'
-
-    Gitlab::Database::PostgresPartitionedTable.each_partition(:p_ci_runner_machine_builds) do |partition|
-      execute "ALTER TABLE #{partition.identifier} DROP CONSTRAINT IF EXISTS temp_fk_bb490f12fe_p"
-    end
+    # This migration was skipped in the ci database on gitlab.com as part of
+    # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
   end
 end
-- 
GitLab


From 1cc3691501e0906aa9767e78805408bf1bfa7f16 Mon Sep 17 00:00:00 2001
From: Marius Bobin <mbobin@gitlab.com>
Date: Mon, 12 Jun 2023 11:20:16 +0300
Subject: [PATCH 2/2] Fix schema structure after no-op changes

---
 ...524135750_replace_ci_job_artifacts_foreign_key.rb |  2 --
 ...24135803_replace_ci_running_builds_foreign_key.rb |  2 --
 ...524135815_replace_ci_job_variables_foreign_key.rb |  2 --
 ...35828_replace_p_ci_builds_metadata_foreign_key.rb |  4 ----
 ...replace_p_ci_runner_machine_builds_foreign_key.rb |  4 ----
 db/structure.sql                                     | 12 ------------
 6 files changed, 26 deletions(-)

diff --git a/db/post_migrate/20230524135750_replace_ci_job_artifacts_foreign_key.rb b/db/post_migrate/20230524135750_replace_ci_job_artifacts_foreign_key.rb
index 6cf17bd0f74cb1ef..48c07bceb6adf9f3 100644
--- a/db/post_migrate/20230524135750_replace_ci_job_artifacts_foreign_key.rb
+++ b/db/post_migrate/20230524135750_replace_ci_job_artifacts_foreign_key.rb
@@ -1,8 +1,6 @@
 # frozen_string_literal: true
 
 class ReplaceCiJobArtifactsForeignKey < Gitlab::Database::Migration[2.1]
-  disable_ddl_transaction!
-
   def up
     # This migration was skipped in the ci database on gitlab.com as part of
     # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
diff --git a/db/post_migrate/20230524135803_replace_ci_running_builds_foreign_key.rb b/db/post_migrate/20230524135803_replace_ci_running_builds_foreign_key.rb
index f6134108c277c819..5d3807242efb0777 100644
--- a/db/post_migrate/20230524135803_replace_ci_running_builds_foreign_key.rb
+++ b/db/post_migrate/20230524135803_replace_ci_running_builds_foreign_key.rb
@@ -1,8 +1,6 @@
 # frozen_string_literal: true
 
 class ReplaceCiRunningBuildsForeignKey < Gitlab::Database::Migration[2.1]
-  disable_ddl_transaction!
-
   def up
     # This migration was skipped in the ci database on gitlab.com as part of
     # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
diff --git a/db/post_migrate/20230524135815_replace_ci_job_variables_foreign_key.rb b/db/post_migrate/20230524135815_replace_ci_job_variables_foreign_key.rb
index dc2b0abe0a9f9678..baac0d495a7bedfb 100644
--- a/db/post_migrate/20230524135815_replace_ci_job_variables_foreign_key.rb
+++ b/db/post_migrate/20230524135815_replace_ci_job_variables_foreign_key.rb
@@ -1,8 +1,6 @@
 # frozen_string_literal: true
 
 class ReplaceCiJobVariablesForeignKey < Gitlab::Database::Migration[2.1]
-  disable_ddl_transaction!
-
   def up
     # This migration was skipped in the ci database on gitlab.com as part of
     # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
diff --git a/db/post_migrate/20230524135828_replace_p_ci_builds_metadata_foreign_key.rb b/db/post_migrate/20230524135828_replace_p_ci_builds_metadata_foreign_key.rb
index 17429dc21860efe5..c398b457978b0b1d 100644
--- a/db/post_migrate/20230524135828_replace_p_ci_builds_metadata_foreign_key.rb
+++ b/db/post_migrate/20230524135828_replace_p_ci_builds_metadata_foreign_key.rb
@@ -1,10 +1,6 @@
 # frozen_string_literal: true
 
 class ReplacePCiBuildsMetadataForeignKey < Gitlab::Database::Migration[2.1]
-  include Gitlab::Database::PartitioningMigrationHelpers
-
-  disable_ddl_transaction!
-
   def up
     # This migration was skipped in the ci database on gitlab.com as part of
     # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
diff --git a/db/post_migrate/20230524135840_replace_p_ci_runner_machine_builds_foreign_key.rb b/db/post_migrate/20230524135840_replace_p_ci_runner_machine_builds_foreign_key.rb
index d6ffc569e9b704a7..bc9d534ec1f7df2a 100644
--- a/db/post_migrate/20230524135840_replace_p_ci_runner_machine_builds_foreign_key.rb
+++ b/db/post_migrate/20230524135840_replace_p_ci_runner_machine_builds_foreign_key.rb
@@ -1,10 +1,6 @@
 # frozen_string_literal: true
 
 class ReplacePCiRunnerMachineBuildsForeignKey < Gitlab::Database::Migration[2.1]
-  include Gitlab::Database::PartitioningMigrationHelpers
-
-  disable_ddl_transaction!
-
   def up
     # This migration was skipped in the ci database on gitlab.com as part of
     # https://gitlab.com/gitlab-com/gl-infra/production/-/issues/14888
diff --git a/db/structure.sql b/db/structure.sql
index 932fb53f05015d79..b786165d8680c788 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -38050,9 +38050,6 @@ ALTER TABLE ONLY ci_sources_pipelines
 ALTER TABLE ONLY ci_resources
     ADD CONSTRAINT temp_fk_e169a8e3d5_p FOREIGN KEY (partition_id, build_id) REFERENCES p_ci_builds(partition_id, id) ON UPDATE CASCADE ON DELETE SET NULL NOT VALID;
 
-ALTER TABLE ONLY ci_builds_metadata
-    ADD CONSTRAINT temp_fk_e20479742e_p FOREIGN KEY (partition_id, build_id) REFERENCES p_ci_builds(partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
-
 ALTER TABLE ONLY ci_build_report_results
     ADD CONSTRAINT temp_fk_rails_16cb1ff064_p FOREIGN KEY (partition_id, build_id) REFERENCES p_ci_builds(partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
 
@@ -38068,15 +38065,6 @@ ALTER TABLE ONLY ci_pending_builds
 ALTER TABLE ONLY ci_build_trace_metadata
     ADD CONSTRAINT temp_fk_rails_aebc78111f_p FOREIGN KEY (partition_id, build_id) REFERENCES p_ci_builds(partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
 
-ALTER TABLE ONLY ci_job_artifacts
-    ADD CONSTRAINT temp_fk_rails_c5137cb2c1_p FOREIGN KEY (partition_id, job_id) REFERENCES p_ci_builds(partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
-
-ALTER TABLE ONLY ci_running_builds
-    ADD CONSTRAINT temp_fk_rails_da45cfa165_p FOREIGN KEY (partition_id, build_id) REFERENCES p_ci_builds(partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
-
-ALTER TABLE ONLY ci_job_variables
-    ADD CONSTRAINT temp_fk_rails_fbf3b34792_p FOREIGN KEY (partition_id, job_id) REFERENCES p_ci_builds(partition_id, id) ON UPDATE CASCADE ON DELETE CASCADE NOT VALID;
-
 ALTER TABLE ONLY user_follow_users
     ADD CONSTRAINT user_follow_users_followee_id_fkey FOREIGN KEY (followee_id) REFERENCES users(id) ON DELETE CASCADE;
 
-- 
GitLab