sql >> Databáze >  >> RDS >> PostgreSQL

TypeORM:Dynamicky nastavit schéma databáze pro EntityManager (nebo úložiště) za běhu?

Odpověď na vlastní otázku:

V tuto chvíli neexistuje žádný způsob, jak vytvořit instanci repozitáře TypeORM s různými schématy za běhu bez vytváření nových připojení.

Takže jediné dvě možnosti, které vývojáři zbývají pro vícenájem založený na schématu, jsou:

  1. Nastavení nových připojení pro připojení k různým schématům v rámci stejné databáze za běhu. Např. viz NestJS Request Scoped Multitenancy pro více databází . Rozhodně byste se však měli snažit o opětovné použití připojení a měli byste si být vědomi limity připojení .
  2. Opuštění myšlenky práce s RepositoryApi a návrat k používání createQueryBuilder (nebo provádění SQL dotazů pomocí query() ).

Pro další výzkum jsou zde některé problémy TypeORM GitHub, které sledují myšlenku změny schématu pro existující připojení nebo úložiště za běhu (podobné tomu, co je požadováno v OP):

P.S. Pokud se TypeORM rozhodne podpořit myšlenku diskutovanou v OP, pokusím se tuto odpověď aktualizovat.



  1. VYBERTE všechna nejnovější klíčová slova odlišná od záznamu s nenulovou hodnotou v jednom sloupci

  2. Velké tabulky MySQL

  3. MySQL LOAD DATA INFILE:funguje, ale nepředvídatelný terminátor řádku

  4. Přidat vlastnost k objektu, který je vrácen Sequelize FindOne