Background
See T403559: Add CommunityRequests tables to production for context.
CommunityRequests tables don't need to be on the main DB clusters, so in order to reduce the load on those clusters we should host the new tables on x1 instead
To query tables on x1 we need to set up a virtual domain, and use a separate db connection that connects via that domain.
r1003510 is an example patch connecting to x1 via a virtual domain, and see here for where the domain is set up in config
Acceptance criteria
- Register a virtual domain in extension.json
- Update SchemaHooks to use DatabaseUpdater::addExtensionUpdateOnVirtualDomain() etc.
- Remove any JOINs on the page table and do those as separate queries
- CommunityRequests tables should be queried using a connection to the virtual domain
- Queries to Core tables should be made via a different regular MW db connection
In an effort to keep to keep patches small(ish), the work should be split between these subtasks.