За да отговоря на собствения си въпрос:
В момента няма начин да се създаде хранилища на TypeORM с различни схеми по време на изпълнение без създаване на нови връзки.
Така че единствените две опции, които остават на разработчика за базирано на схема мулти наемане, са:
- Настройване на нови връзки за свързване с различни схеми в една и съща база данни по време на изпълнение. напр. вижте NestJS Request Scoped Multitenancy за множество бази данни . Човек обаче определено трябва да се стреми към повторно използване на връзки и да е наясно с ограничения на връзката .
- Изоставяне на идеята за работа с RepositoryApi и връщане към използване на
createQueryBuilder
(или изпълнение на SQL заявки чрезquery()
).
За по-нататъшно проучване, ето някои проблеми с TypeORM GitHub, които проследяват идеята за промяна на схемата за съществуващи връзки или хранилища по време на изпълнение (подобно на това, което се изисква в OP):
- Мултитенантна архитектура, използваща схема. #4786
предлага нещо като
this.photoRepository.useSchema('customer1').find()
- Обработка на схеми на бази данни #3067
предлага нещо като
getConnection().changeDefaultSchema('myschema')
- Промяна по време на изпълнение на схема #4473
- Добавяне на възможност за задаване на postgresql схема на повикване #2439
P.S. Ако TypeORM реши да подкрепи идеята, обсъдена в OP, ще се опитам да актуализирам този отговор.