PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

TypeORM :définir dynamiquement le schéma de base de données pour EntityManager (ou les référentiels) lors de l'exécution ?

Pour répondre à ma propre question :

Pour le moment, il n'y a aucun moyen d'instancier les dépôts TypeORM avec différents schémas lors de l'exécution sans créer de nouvelles connexions.

Ainsi, les deux seules options qui restent à un développeur pour la multilocation basée sur un schéma sont :

  1. Configuration de nouvelles connexions pour se connecter à différents schémas au sein de la même base de données lors de l'exécution. Par exemple. voir NestJS Request Scoped Multitenancy for Multiple Databases . Cependant, il faut absolument s'efforcer de réutiliser les connexions et être conscient de limites de connexion .
  2. Abandonner l'idée de travailler avec RepositoryApi et revenir à l'utilisation de createQueryBuilder (ou exécuter des requêtes SQL via query() ).

Pour des recherches plus approfondies, voici quelques problèmes de TypeORM GitHub qui suivent l'idée de modifier le schéma d'une connexion ou d'un référentiel existant au moment de l'exécution (similaire à ce qui est demandé dans l'OP) :

PS Si TypeORM décide de soutenir l'idée discutée dans l'OP, j'essaierai de mettre à jour cette réponse.