PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

TypeORM:impostare dinamicamente lo schema del database per EntityManager (o repository) in fase di esecuzione?

Per rispondere alla mia stessa domanda:

Al momento non è possibile creare un'istanza di repository TypeORM con schemi diversi in fase di esecuzione senza creare nuove connessioni.

Quindi le uniche due opzioni che rimangono a uno sviluppatore per la multi-tenancy basata su schema sono:

  1. Impostazione di nuove connessioni per connettersi con schemi diversi all'interno dello stesso db in fase di esecuzione. Per esempio. vedere NestJS Request Scoped Multitenancy per più database . Tuttavia, si dovrebbe assolutamente sforzarsi di riutilizzare le connessioni ed essere consapevoli di limiti di connessione .
  2. Abbandonare l'idea di lavorare con RepositoryApi e tornare a usare createQueryBuilder (o eseguendo query SQL tramite query() ).

Per ulteriori ricerche, ecco alcuni problemi di TypeORM GitHub che tengono traccia dell'idea di modificare lo schema per connessioni o repository esistenti in fase di esecuzione (simile a quanto richiesto nell'OP):

PS Se TypeORM decide di supportare l'idea discussa nell'OP, proverò ad aggiornare questa risposta.