Refactor Gitlab::Database to support multiple DBs
What does this MR do?
This refactors the module Gitlab::Database so it supports multiple databases. Logic tied to a connection is now scoped to instances of Gitlab::Dababase::Connection. For every database, an instance of this class is created and stored in Gitlab::Database::DATABASES.
The module Gitlab::Database still exposes various methods that forward the call to a corresponding instance of Database::Connection. These wrappers and their use will be changed in separate commits, as otherwise the diffs become far too large for anybody to make sense of.
See #331776 (closed) for more information.
Does this MR meet the acceptance criteria?
Conformity
-
I have included changelog trailers, or none are needed. (Does this MR need a changelog?)- This is a backstage-only change
-
I have properly separated EE content from FOSS, or this MR is FOSS only. (Where should EE code go?) -
I have added information for database reviewers in the MR description, or it's not needed. (Does this MR have database related changes?) -
I have self-reviewed this MR per code review guidelines. -
This MR does not harm performance, or I have asked a reviewer to help assess the performance impact. (Merge request performance guidelines) -
I have followed the style guides. -
This change is backwards compatible across updates, or this does not apply.
Edited by Yorick Peterse