Skip to content

Finalize batched migration BackfillCatalogResourceVersionsReleasedAt

What does this MR do and why?

In !142255 (merged), we introduced a batched background migration to backfill the columns of catalog_resource_versions.released_at with data from releases.released_at. Prior to that, we established a process to keep the columns in sync in !141817 (merged). Our goal is to denormalize catalog_resource_versions.released_at so that we can avoid having to JOIN with the releases table.

Now that the batched migration from !142255 (merged) has completed on GitLab.com, this MR adds a finalization migration. After this MR is deployed, we can then update our code in the Ci::Catalog::Resource::Versions model to use the denormalized released_at column.

Resolves Step 3 of #430117 (closed).

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.

Migration

Up

main: == [advisory_lock_connection] object_id: 117780, pg_backend_pid: 65876
main: == 20240129181136 FinalizeBackfillCatalogResourceVersionsReleasedAt: migrating 
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: == 20240129181136 FinalizeBackfillCatalogResourceVersionsReleasedAt: migrated (0.1542s) 

main: == [advisory_lock_connection] object_id: 117780, pg_backend_pid: 65876
ci: == [advisory_lock_connection] object_id: 118160, pg_backend_pid: 65878
ci: == 20240129181136 FinalizeBackfillCatalogResourceVersionsReleasedAt: migrating 
ci: -- The migration is skipped since it modifies the schemas: [:gitlab_main].
ci: -- This database can only apply migrations in one of the following schemas: [:gitlab_ci, :gitlab_internal, :gitlab_shared].
ci: == 20240129181136 FinalizeBackfillCatalogResourceVersionsReleasedAt: migrated (0.0067s) 

ci: == [advisory_lock_connection] object_id: 118160, pg_backend_pid: 65878

Down

main: == [advisory_lock_connection] object_id: 117320, pg_backend_pid: 66332
main: == 20240129181136 FinalizeBackfillCatalogResourceVersionsReleasedAt: reverting 
main: == 20240129181136 FinalizeBackfillCatalogResourceVersionsReleasedAt: reverted (0.0031s) 

main: == [advisory_lock_connection] object_id: 117320, pg_backend_pid: 66332
ci: == [advisory_lock_connection] object_id: 117200, pg_backend_pid: 66777
ci: == 20240129181136 FinalizeBackfillCatalogResourceVersionsReleasedAt: reverting 
ci: -- The migration is skipped since it modifies the schemas: [:gitlab_main].
ci: -- This database can only apply migrations in one of the following schemas: [:gitlab_ci, :gitlab_internal, :gitlab_shared].
ci: == 20240129181136 FinalizeBackfillCatalogResourceVersionsReleasedAt: reverted (0.0085s) 

ci: == [advisory_lock_connection] object_id: 117200, pg_backend_pid: 66777

Related to #430117 (closed)

Merge request reports