db:migrate:multi-version-upgrade job

History

This job runs on the test stage of a merge request pipeline. It validates that migrations pass for multi-version upgrade from the latest required upgrade stop to the author’s working branch. It achieves it by running gitlab:db:configure against PostgreSQL dump created from the latest known GitLab version stop with test data.

The database dump is generated and maintained with PostgreSQL Dump Generator. To seed database with data, the tool uses Data Seeder with bulk_data.rb configuration to seed all factories and uses db:seed_fu to seed all db/fixtures. Latest dump is generated automatically in scheduled pipelines for the latest patch release of the required stop.

Troubleshooting

Database reconfigure failures

This failure usually happens due to an actual migration error in your working branch. To reproduce the failure locally follow Migration upgrade testing guidance. It outlines the steps how to import the latest PostgreSQL dump in your local GitLab Development Kit or GitLab Docker instance.

For a real-life example, refer to this failed job.

Database import failures

If job is failing on setup stage prior to gitlab:db:configure due to external dependencies, the job can be disabled by setting DISABLE_DB_MULTI_VERSION_UPGRADE=true in GitLab project CI variables to unblock the broken master.

Reach out to Self-Managed Platform team to expedite debugging.