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