Drop readme columns from catalog_bundled_resource_versions
Drops readme and readme_html from catalog_bundled_resource_versions in a post-deployment migration.
Closes #626853 (closed)
Why this is safe
Both columns are empty and unwritten. !252808 (merged) moved the readme into object storage, and cache_markdown_field :readme, storage: :external routes both fields through externally_stored_field, which declares them as virtual attributes (attribute field, :string, lib/gitlab/markdown_cache/external_storage/extension.rb). Nothing has resolved to the columns since.
The ignore_columns rule stays in place. It is removed separately in 19.6 via #626854 (closed).
Database
Post-deployment migration on gitlab_main_cell_local. The table is empty on GitLab.com, so there is no data loss and no meaningful timing to report.
Migration output:
main: == 20260917174103 DropReadmeColumnsFromCatalogBundledResourceVersions: migrating
main: -- remove_column(:catalog_bundled_resource_versions, :readme, {:if_exists=>true})
main: -> 0.0041s
main: -- remove_column(:catalog_bundled_resource_versions, :readme_html, {:if_exists=>true})
main: -> 0.0014s
main: == 20260917174103 DropReadmeColumnsFromCatalogBundledResourceVersions: migrated (0.0116s)down re-adds both as plain text, matching the previous definition. Neither column had a limit constraint or an index. The rollback path is left to the CI rollback job.
Data deletion
Records affected: none. catalog_bundled_resource_versions is empty on GitLab.com. Nothing
writes to it yet: the compile-on-publish path is not merged, and the backfill
(#600463) has not run.
Recovery: not applicable while the table is empty. If a row did exist, the readme is not held
in these columns. !252808 (merged) moved readme
content to object storage, and it is regenerated from the bundle by CompileAndStoreService.
User experience impact: none. No feature reads these columns. The readme shown in the catalog is served from object storage.