Skip to content
  • Abhilash Kotte's avatar
    Add and backfill namespace_id for design_management_versions · e3a33642
    Abhilash Kotte authored
    ## What does this MR do and why?
    
    Add and backfill namespace_id for design_management_versions.
    
    This table has a
    [desired sharding key](https://docs.gitlab.com/ee/development/database/multiple_databases.html#define-a-desired_sharding_key-to-automatically-backfill-a-sharding_key)
    configured ([view configuration](https://gitlab.com/gitlab-org/gitlab/-/blob/master/db/docs/design_management_versions.yml)).
    
    This merge request is the first step towards transforming the desired sharding key into a
    [sharding key](https://docs.gitlab.com/ee/development/database/multiple_databases.html#defining-a-sharding-key-for-all-cell-local-tables).
    
    This involves three changes:
    
    - Adding a new column that will serve as the sharding key (along with the relevant index and foreign key).
    - Populating the sharding key when new records are created by adding a database function and trigger.
    - Scheduling a [batched background migration](https://docs.gitlab.com/ee/development/database/batched_background_migrations.html)
      to set the sharding key for existing records.
    
    Once the background migration has completed, a second merge request will be created to finalize the background
    migration and validate the not null constraint.
    
    ## How to verify
    
    We have assigned a random backend engineer from ~"group::product planning" to review these changes. Please review this merge
    request from a ~backend perspective. The main thing we are looking to verify is that the added column and association
    match the values specified by the [desired sharding key](https://gitlab.com/gitlab-org/gitlab/-/blob/master/db/docs/design_management_versions.yml)
    configuration and that backfilling the column from this other table makes sense in the context of this feature.
    
    When you are finished, please:
    
    1. Trigger the [database testing pipeline](https://docs.gitlab.com/ee/development/database/database_migration_pipeline.html)
       as instructed by Danger.
    1. Request a review from the ~backend maintainer and ~database reviewer suggested by Danger.
    
    If you have any questions or concerns, reach out to `@tigerwnz` or @manojmj.
    
    This merge request was generated by a once off keep implemented in
    https://gitlab.com/gitlab-org/gitlab/-/merge_requests/143774
    
    This change was generated by
    [gitlab-housekeeper](https://gitlab.com/gitlab-org/gitlab/-/tree/master/gems/gitlab-housekeeper)
    using the Keeps::BackfillDesiredShardingKeySmallTable keep.
    
    To provide feedback on your experience with `gitlab-housekeeper` please comment in
    <https://gitlab.com/gitlab-org/gitlab/-/issues/442003>.
    
    Changelog: other
    e3a33642