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 :
- 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 .
- Abandonner l'idée de travailler avec RepositoryApi et revenir à l'utilisation de
createQueryBuilder
(ou exécuter des requêtes SQL viaquery()
).
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) :
- Architecture mutualisée utilisant un schéma. #4786
propose quelque chose comme
this.photoRepository.useSchema('customer1').find()
- Gestion des schémas de base de données #3067
propose quelque chose comme
getConnection().changeDefaultSchema('myschema')
- Changement d'exécution du schéma #4473
- Ajouter la possibilité de définir le schéma postgresql par appel #2439
PS Si TypeORM décide de soutenir l'idée discutée dans l'OP, j'essaierai de mettre à jour cette réponse.