Skip to content

Remove registry migration-related columns in application settings

What does this MR do and why?

In this MR, we remove the registry migration-related columns in the application settings. We have ignored them last milestone, %17.0, in !151383 (merged).

As the next step as per our guidelines, we are removing the columns in a post-deployment migration.

Changelog: removed

Logs during bin/rails db:migrate:

main: == [advisory_lock_connection] object_id: 125260, pg_backend_pid: 18843
main: == 20240519102652 RemoveRegistryMigrationFieldsFromApplicationSettings: migrating
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- remove_column(:application_settings, :container_registry_import_max_tags_count)
main:    -> 0.0013s
main: -- remove_column(:application_settings, :container_registry_import_max_retries)
main:    -> 0.0008s
main: -- remove_column(:application_settings, :container_registry_import_start_max_retries)
main:    -> 0.0008s
main: -- remove_column(:application_settings, :container_registry_import_max_step_duration)
main:    -> 0.0006s
main: -- remove_column(:application_settings, :container_registry_pre_import_tags_rate)
main:    -> 0.0011s
main: -- remove_column(:application_settings, :container_registry_pre_import_timeout)
main:    -> 0.0006s
main: -- remove_column(:application_settings, :container_registry_import_timeout)
main:    -> 0.0005s
main: -- remove_column(:application_settings, :container_registry_import_target_plan)
main:    -> 0.0007s
main: -- remove_column(:application_settings, :container_registry_import_created_before)
main:    -> 0.0005s
main: == 20240519102652 RemoveRegistryMigrationFieldsFromApplicationSettings: migrated (0.0202s)

main: == [advisory_lock_connection] object_id: 125260, pg_backend_pid: 18843

Logs during bin/rails db:rollback:main:

main: == [advisory_lock_connection] object_id: 125000, pg_backend_pid: 19152
main: == 20240519102652 RemoveRegistryMigrationFieldsFromApplicationSettings: reverting
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- add_column(:application_settings, :container_registry_import_max_tags_count, :integer, {:default=>100, :null=>false, :if_not_exists=>true})
main:    -> 0.1710s
main: -- add_column(:application_settings, :container_registry_import_max_retries, :integer, {:default=>3, :null=>false, :if_not_exists=>true})
main:    -> 0.1506s
main: -- add_column(:application_settings, :container_registry_import_start_max_retries, :integer, {:default=>50, :null=>false, :if_not_exists=>true})
main:    -> 0.1526s
main: -- add_column(:application_settings, :container_registry_import_max_step_duration, :integer, {:default=>5 minutes, :null=>false, :if_not_exists=>true})
main:    -> 0.1544s
main: -- add_column(:application_settings, :container_registry_pre_import_tags_rate, :decimal, {:precision=>6, :scale=>2, :default=>0.5, :null=>false, :if_not_exists=>true})
main:    -> 0.1613s
main: -- add_column(:application_settings, :container_registry_pre_import_timeout, :integer, {:default=>30 minutes, :null=>false, :if_not_exists=>true})
main:    -> 0.1596s
main: -- add_column(:application_settings, :container_registry_import_timeout, :integer, {:default=>10 minutes, :null=>false, :if_not_exists=>true})
main:    -> 0.1612s
main: -- add_column(:application_settings, :container_registry_import_target_plan, :text, {:default=>"free", :null=>false, :if_not_exists=>true})
main:    -> 0.1597s
main: -- add_column(:application_settings, :container_registry_import_created_before, :datetime_with_timezone, {:default=>"2022-01-23 00:00:00+00", :null=>false, :if_not_exists=>true})
main:    -> 0.1595s
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- execute("ALTER TABLE application_settings\nADD CONSTRAINT check_3559645ae5\nCHECK ( char_length(container_registry_import_target_plan) <= 255 )\nNOT VALID;\n")
main:    -> 0.0007s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0001s
main: -- execute("ALTER TABLE application_settings VALIDATE CONSTRAINT check_3559645ae5;")
main:    -> 0.0007s
main: -- execute("RESET statement_timeout")
main:    -> 0.0002s
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- execute("ALTER TABLE application_settings\nADD CONSTRAINT app_settings_container_registry_pre_import_tags_rate_positive\nCHECK ( container_registry_pre_import_tags_rate >= 0::numeric )\nNOT VALID;\n")
main:    -> 0.0007s
main: -- execute("ALTER TABLE application_settings VALIDATE CONSTRAINT app_settings_container_registry_pre_import_tags_rate_positive;")
main:    -> 0.0005s
main: == 20240519102652 RemoveRegistryMigrationFieldsFromApplicationSettings: reverted (1.4573s)

main: == [advisory_lock_connection] object_id: 125000, pg_backend_pid: 19152

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

How to set up and validate locally

To migrate:

bin/rails db:migrate

To rollback:

bin/rails db:rollback

Related to #409873

Edited by Adie (she/her)

Merge request reports