Explore seeding options for the DB dump with data for multi-version upgrades testing
Summary
Explore options to automatically and consistently seed database with extensive data to prepare DB dump for multi-version upgrades testing.
Exit criteria
The tool and respective configuration which can be used to seed database in GitLab instance.
Details
-
Explore tools to seed DB #=> GitLab Data Seeder - GitLab QA smoke suites => quick iteration that would mimic
Test::Omnibus::UpdateFromPrevious
scenario - GitLab Data Seeder
- Explore if there are tools that Devs are using
- GitLab QA smoke suites => quick iteration that would mimic
-
Discuss with Database team which tables are only used on GitLab.com or self-managed, identify strategies to seed such data as well=> moved to #2354 (closed) -
Identify how to run the tool consistently against latest known GitLab upgrade stop version #=> !137582 -
Create data shape to be seeded( if Data Seeder to be used) => moved to #2354 (closed)- Explore if there is a way to seed environment with all possible fixtures #=> Currently seeding Super Group labels, Subgroups, Group labels, Milestones, Epics, Projects , Project Labels, assign random labels, assigning random issue weights, random milestones, Comments with random text, random number of MRs with random labels
- Enforce fixtures for new tables #1919 (comment 1627260665)
-
Estimate how much time it takes to generate specific amount of data #=> The seeding portion takes ~10s - ~20s with the current dataset. The overall job that pulls/prepares/seeds/exports is currently ~9min -
Validate that data selected approach work - create DB dump for known problematic upgrade path and verify that there is a migration error=> moved to #2354 (closed) -
Enable engineers to more easily run this upgrade test locally, without the use of CI.=> moved to #2354 (closed)-
Use Docker Compose(?)
-
Context
This work part of the Migration testing for multi-version upgrades wi... (&19 - closed), with the goal of adding CI job which would emulate multi-version upgrades in GitLab to catch migration errors at lower level without building an environment.
Edited by Nailia Iskhakova