Add allowlist to db/docs files for cross-joins/fks/txns
What does this MR do and why?
As part of the
Cells
effort we need to classify all tables as gitlab_main_cell
or
gitlab_main_clusterwide
. In the future these tables will be split into
different databases. For now when we classify these tables we will start
to get errors in CI for
cross-joins,
cross-transactions
and
cross-database foreign keys.
This MR adds an allowlist in the db/docs
file per type to avoid seeing
these failures once we classify the table as gitlab_main_cell
. This is
to to support
automatically labelling hundreds of tables
in bulk with gitlab_main_cell
(as part of the
Organization
Isolation
effort)
. This will result in lots of pipeline failures
and we want to deal with these those cross-join (etc.) fixes later. For now
we just want to classify things.
You can see the example format of allowing in the
db/docs/achievements.yml
change which was chosen as an arbitrary
example to prove that this works.
This MR was extracted from a larger MR !140420 (closed) which tried to move some duplicated logic in GitlabSchema
class to the Dictionary
class. This proved to be far more widespread a refactoring than I wanted because these methods are used all over the place and it required hundreds of changes to fix all the specs (which I didn't manage to finish anyway). Since this change is important and unblocks us setting gitlab_main_cell
to the tables in the short term I didn't want to hold off on that refactoring.
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
Before | After |
---|---|
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
Related to #429172 (closed)