För att svara på min egen fråga:
För tillfället finns det inget sätt att instansiera TypeORM-arkiv a> med olika scheman under körning utan att skapa nya anslutningar.
Så de enda två alternativen som en utvecklare har kvar för schemabaserad flerhyra är:
- Konfigurera nya anslutningar för att ansluta till olika scheman inom samma db vid körning. T.ex. se NestJS Request Scoped Multitenancy for Multiple Databases . Däremot bör man definitivt sträva efter att återanvända anslutningar och och vara medveten om anslutningsgränser .
- Att överge tanken på att arbeta med RepositoryApi och återgå till att använda
createQueryBuilder
(eller exekvera SQL-frågor viaquery()
).
För ytterligare forskning, här är några TypeORM GitHub-problem som spårar idén om att ändra schemat för en befintlig anslutning eller förråd vid körning (liknande vad som efterfrågas i OP):
- Multi-tenant-arkitektur med schema. #4786
föreslår något som
this.photoRepository.useSchema('customer1').find()
- Hantering av databasscheman #3067
föreslår något som
getConnection().changeDefaultSchema('myschema')
- Körtidsändring av schema #4473
- Lägg till en möjlighet att ställa in postgresql-schema per samtal #2439
P.S. Om TypeORM bestämmer sig för att stödja idén som diskuteras i OP kommer jag att försöka uppdatera det här svaret.