Odpověď na vlastní otázku:
V tuto chvíli neexistuje žádný způsob, jak vytvořit instanci repozitáře TypeORM s různými schématy za běhu bez vytváření nových připojení.
Takže jediné dvě možnosti, které vývojáři zbývají pro vícenájem založený na schématu, jsou:
- Nastavení nových připojení pro připojení k různým schématům v rámci stejné databáze za běhu. Např. viz NestJS Request Scoped Multitenancy pro více databází . Rozhodně byste se však měli snažit o opětovné použití připojení a měli byste si být vědomi limity připojení .
- Opuštění myšlenky práce s RepositoryApi a návrat k používání
createQueryBuilder
(nebo provádění SQL dotazů pomocíquery()
).
Pro další výzkum jsou zde některé problémy TypeORM GitHub, které sledují myšlenku změny schématu pro existující připojení nebo úložiště za běhu (podobné tomu, co je požadováno v OP):
- Architektura pro více nájemců využívající schéma. #4786
navrhuje něco jako
this.photoRepository.useSchema('customer1').find()
- Zpracování databázových schémat #3067
navrhuje něco jako
getConnection().changeDefaultSchema('myschema')
- Běhová změna schématu #4473
- Přidat možnost nastavit schéma postgresql pro každý hovor #2439
P.S. Pokud se TypeORM rozhodne podpořit myšlenku diskutovanou v OP, pokusím se tuto odpověď aktualizovat.