experiment: non-sequential migrations
Created by: efritz
This branch is an experiment (never meant to be merged) to ensure that a set of migration features, when implemented to completion, work well together. Now that this has been proven, this effort will be cut up into smaller, more digestible chunks.
The PRs that come from this branch will be linked here. Periodically, I may merge an updated main
into this branch to "checkpoint" completed work. This will reduce the diff of this experimental branch to main
to keep the relevant portions of the experiment that are still in discussion focused.
This branch has made several large changes:
- Migrations are now stored in a directory rather than in a pair of files
- A linear sequence of migrations are no longer necessary; any single-entry, single-exit DAG is validated
- The migrator cli been rewritten with four commands:
up(grade)
,upto
,downto
, andrevert
- Drop the advisory lock before applying a concurrent index creation command
- Poll for the advisory lock
CI builds (main-dry-run/*
):
- Original:
- Pulling upstream changes:
- 187718ac4d: https://buildkite.com/sourcegraph/sourcegraph/builds/127624
- a419639065: https://buildkite.com/sourcegraph/sourcegraph/builds/127911
- 7e890628e3: https://buildkite.com/sourcegraph/sourcegraph/builds/127944
- 24344e3af3: https://buildkite.com/sourcegraph/sourcegraph/builds/128099
- c84392fe12: https://buildkite.com/sourcegraph/sourcegraph/builds/128219
- 2a8ab2cca2: https://buildkite.com/sourcegraph/sourcegraph/builds/128635
- 1117d4233c: https://buildkite.com/sourcegraph/sourcegraph/builds/128815
- 7d7d99e72c: https://buildkite.com/sourcegraph/sourcegraph/builds/128932
- 0ceb818d37: https://buildkite.com/sourcegraph/sourcegraph/builds/129243