sql >> Base de Datos >  >> RDS >> PostgreSQL

TypeORM:¿establece dinámicamente el esquema de la base de datos para EntityManager (o repositorios) en tiempo de ejecución?

Para responder a mi propia pregunta:

Por el momento no hay forma de instanciar repositorios TypeORM con diferentes esquemas en tiempo de ejecución sin crear nuevas conexiones.

Por lo tanto, las únicas dos opciones que le quedan a un desarrollador para la tenencia múltiple basada en esquemas son:

  1. Configurar nuevas conexiones para conectarse con diferentes esquemas dentro de la misma base de datos en tiempo de ejecución. P.ej. consulte NestJS Request Scoped Multitenancy para múltiples bases de datos . Sin embargo, uno definitivamente debe esforzarse por reutilizar las conexiones y ser consciente de límites de conexión .
  2. Abandonar la idea de trabajar con RepositoryApi y volver a usar createQueryBuilder (o ejecutando consultas SQL a través de query() ).

Para una mayor investigación, aquí hay algunos problemas de TypeORM GitHub que rastrean la idea de cambiar el esquema para conexiones o repositorios existentes en tiempo de ejecución (similar a lo que se solicita en el OP):

PD Si TypeORM decide apoyar la idea discutida en el OP, intentaré actualizar esta respuesta.