Database prep for phase 2 of container registry import
🏘 Context
We are preparing for Phase 2 of the Container Registry migration which involves importing all existing container repositories to the new platform (Phase 1 involved routing all new container repositories to the new platform).
This import will be driven by the rails project using the container_repositories
table. See &7316 (closed) for full details of how the import will work.
🔬 What does this MR do and why?
This MR adds the necessary application_settings
and container_repositories
columns needed to both control and track the import process. These attributes will be used in the following MRs described in &7316 (closed). See #349740 (closed) for descriptions of each new column.
🐘 Database
Up migration output
== 20220106230629 AddRegistryMigrationApplicationSettings: migrating ==========
-- add_column(:application_settings, :container_registry_import_max_tags_count, :integer, {:default=>100, :null=>false})
-> 0.0071s
-- add_column(:application_settings, :container_registry_import_max_retries, :integer, {:default=>3, :null=>false})
-> 0.0020s
-- add_column(:application_settings, :container_registry_import_start_max_retries, :integer, {:default=>50, :null=>false})
-> 0.0022s
-- add_column(:application_settings, :container_registry_import_max_step_duration, :integer, {:default=>5 minutes, :null=>false})
-> 0.0020s
-- add_column(:application_settings, :container_registry_import_target_plan, :text, {:default=>"free", :null=>false})
-> 0.0018s
-- add_column(:application_settings, :container_registry_import_created_before, :datetime_with_timezone, {:default=>"2020-01-05 00:00:00", :null=>false})
-> 0.0019s
== 20220106230629 AddRegistryMigrationApplicationSettings: migrated (0.0177s) =
== 20220106230712 AddMigrationColumnsToContainerRepositories: migrating =======
-- add_column(:container_repositories, :migration_pre_import_started_at, :datetime_with_timezone)
-> 0.0033s
-- add_column(:container_repositories, :migration_pre_import_done_at, :datetime_with_timezone)
-> 0.0012s
-- add_column(:container_repositories, :migration_import_started_at, :datetime_with_timezone)
-> 0.0011s
-- add_column(:container_repositories, :migration_import_done_at, :datetime_with_timezone)
-> 0.0010s
-- add_column(:container_repositories, :migration_aborted_at, :datetime_with_timezone)
-> 0.0010s
-- add_column(:container_repositories, :migration_skipped_at, :datetime_with_timezone)
-> 0.0010s
-- add_column(:container_repositories, :migration_retries_count, :integer, {:default=>0, :null=>false})
-> 0.0026s
-- add_column(:container_repositories, :migration_skipped_reason, :smallint)
-> 0.0010s
-- add_column(:container_repositories, :migration_state, :text, {:default=>"default", :null=>false})
-> 0.0013s
-- add_column(:container_repositories, :migration_aborted_in_state, :text)
-> 0.0009s
== 20220106230712 AddMigrationColumnsToContainerRepositories: migrated (0.0150s)
== 20220117225936 AddTextLimitsToContainerRepositoriesMigrationColumns: migrating
-- transaction_open?()
-> 0.0000s
-- current_schema()
-> 0.0005s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE container_repositories\nADD CONSTRAINT check_13c58fe73a\nCHECK ( char_length(migration_state) <= 255 )\nNOT VALID;\n")
-> 0.0017s
-- current_schema()
-> 0.0004s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE container_repositories VALIDATE CONSTRAINT check_13c58fe73a;")
-> 0.0011s
-- execute("RESET statement_timeout")
-> 0.0006s
-- transaction_open?()
-> 0.0000s
-- current_schema()
-> 0.0002s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE container_repositories\nADD CONSTRAINT check_97f0249439\nCHECK ( char_length(migration_aborted_in_state) <= 255 )\nNOT VALID;\n")
-> 0.0009s
-- current_schema()
-> 0.0002s
-- execute("ALTER TABLE container_repositories VALIDATE CONSTRAINT check_97f0249439;")
-> 0.0010s
== 20220117225936 AddTextLimitsToContainerRepositoriesMigrationColumns: migrated (0.0287s)
== 20220118141950 AddTextLimitToContainerRegistryImportTargetPlan: migrating ==
-- transaction_open?()
-> 0.0000s
-- current_schema()
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE application_settings\nADD CONSTRAINT check_3559645ae5\nCHECK ( char_length(container_registry_import_target_plan) <= 255 )\nNOT VALID;\n")
-> 0.0049s
-- current_schema()
-> 0.0002s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE application_settings VALIDATE CONSTRAINT check_3559645ae5;")
-> 0.0015s
-- execute("RESET statement_timeout")
-> 0.0006s
== 20220118141950 AddTextLimitToContainerRegistryImportTargetPlan: migrated (0.0222s)
Down migration output
== 20220118141950 AddTextLimitToContainerRegistryImportTargetPlan: reverting ==
-- transaction_open?()
-> 0.0000s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE application_settings\nDROP CONSTRAINT IF EXISTS check_3559645ae5\n")
-> 0.0018s
== 20220118141950 AddTextLimitToContainerRegistryImportTargetPlan: reverted (0.0109s)
== 20220117225936 AddTextLimitsToContainerRepositoriesMigrationColumns: reverting
-- transaction_open?()
-> 0.0000s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE container_repositories\nDROP CONSTRAINT IF EXISTS check_13c58fe73a\n")
-> 0.0010s
-- transaction_open?()
-> 0.0000s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE container_repositories\nDROP CONSTRAINT IF EXISTS check_97f0249439\n")
-> 0.0007s
== 20220117225936 AddTextLimitsToContainerRepositoriesMigrationColumns: reverted (0.0147s)
== 20220106230712 AddMigrationColumnsToContainerRepositories: reverting =======
-- remove_column(:container_repositories, :migration_aborted_in_state, :text)
-> 0.0028s
-- remove_column(:container_repositories, :migration_state, :text, {:default=>"default", :null=>false})
-> 0.0018s
-- remove_column(:container_repositories, :migration_skipped_reason, :smallint)
-> 0.0013s
-- remove_column(:container_repositories, :migration_retries_count, :integer, {:default=>0, :null=>false})
-> 0.0011s
-- remove_column(:container_repositories, :migration_skipped_at, :datetime_with_timezone)
-> 0.0009s
-- remove_column(:container_repositories, :migration_aborted_at, :datetime_with_timezone)
-> 0.0009s
-- remove_column(:container_repositories, :migration_import_done_at, :datetime_with_timezone)
-> 0.0009s
-- remove_column(:container_repositories, :migration_import_started_at, :datetime_with_timezone)
-> 0.0009s
-- remove_column(:container_repositories, :migration_pre_import_done_at, :datetime_with_timezone)
-> 0.0009s
-- remove_column(:container_repositories, :migration_pre_import_started_at, :datetime_with_timezone)
-> 0.0009s
== 20220106230712 AddMigrationColumnsToContainerRepositories: reverted (0.0139s)
== 20220106230629 AddRegistryMigrationApplicationSettings: reverting ==========
-- remove_column(:application_settings, :container_registry_import_created_before, :datetime_with_timezone, {:default=>"2020-01-05 00:00:00", :null=>false})
-> 0.0041s
-- remove_column(:application_settings, :container_registry_import_target_plan, :text, {:default=>"free", :null=>false})
-> 0.0015s
-- remove_column(:application_settings, :container_registry_import_max_step_duration, :integer, {:default=>5 minutes, :null=>false})
-> 0.0015s
-- remove_column(:application_settings, :container_registry_import_start_max_retries, :integer, {:default=>50, :null=>false})
-> 0.0014s
-- remove_column(:application_settings, :container_registry_import_max_retries, :integer, {:default=>3, :null=>false})
-> 0.0015s
-- remove_column(:application_settings, :container_registry_import_max_tags_count, :integer, {:default=>100, :null=>false})
-> 0.0015s
== 20220106230629 AddRegistryMigrationApplicationSettings: reverted (0.0150s) =
📷 Screenshots or screen recordings
N/A
How to set up and validate locally
Nothing to validate outside of running the migrations.
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Related: #349740 (closed)