PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

TypeORM:Datenbankschema für EntityManager (oder Repositories) zur Laufzeit dynamisch setzen?

Um meine eigene Frage zu beantworten:

Im Moment gibt es keine Möglichkeit, TypeORM-Repositories mit unterschiedlichen Schemas zur Laufzeit, ohne neue Verbindungen herzustellen.

Die einzigen beiden Optionen, die einem Entwickler für die schemabasierte Mandantenfähigkeit bleiben, sind also:

  1. Neue Verbindungen einrichten, um zur Laufzeit eine Verbindung mit verschiedenen Schemas innerhalb derselben Datenbank herzustellen. Z.B. siehe NestJS Request Scoped Multitenancy for Multiple Databases . Allerdings sollte man sich auf jeden Fall um die Wiederverwendung von Verbindungen bemühen und Verbindungslimits .
  2. Aufgeben der Idee, mit der RepositoryApi und zurück zur Verwendung von createQueryBuilder (oder Ausführen von SQL-Abfragen über query() ).

Zur weiteren Recherche finden Sie hier einige TypeORM-GitHub-Probleme, die die Idee verfolgen, das Schema für vorhandene Verbindungen oder Repositories zur Laufzeit zu ändern (ähnlich wie im OP gefordert):

P.S. Wenn TypeORM beschließt, die im OP diskutierte Idee zu unterstützen, werde ich versuchen, diese Antwort zu aktualisieren.