sql >> Database teknologi >  >> RDS >> PostgreSQL

TypeORM understøtter ikke databaseindstillingen på enhedsdekoratoren

Dette er et opsætningsproblem. Jeg løste det sådan her:

  1. Rediger array-entities så hver forbindelse/database har sin egen mappe med entitetsfiler og navngiv den enhed, du bruger mest som default :
// src/index.ts
 await createConnections([
      {
        name: 'default',
        host: 'SERVER1',
        username: 'bob',
        password: 'kiwi,
        type: 'mssql',
        database: 'db1',
        ...
       "synchronize": true,
       "entities": ["src/db1/entity/**/*.ts"],
      },
      {
        name: 'connection2,
        host: 'SERVER2',
        username: 'Mike',
        password: 'carrot',
        type: 'mssql',
        database: 'db2,
        ...
       "synchronize": true,
       "entities": ["src/db2/entity/**/*.ts"],
    ])
  1. Opret entitetsfiler for hver database i dens respektive mappe:
    • src/db1/entity/Fruit.ts> tabel i db1
    • src/db2/entity/Vegetables.ts> tabel i db2

Med "synchronize": true hver tabel oprettes automatisk i den korrekte database

  1. Adgang til data i tabellerne:
    • For default forbindelse::
import { Fruit} from 'src/db1/entity/Fruit.ts'
  fruits() {
    return Fruit.find()
  }
  • For ikke-standardforbindelsen:
import { getRepository } from 'typeorm'
import { Vegetable} from 'src/db2/entity/Vegetable.ts'
  vegetables() {
      return async () => await getRepository(Vegetable).find()
  }

eller

  async vegetables() {
    return await getRepository(vegetables, 'connection2').find()
  }

Jeg håber, at dette hjælper en anden, der kæmper med de samme problemer som dig og mig.




  1. java.lang.OutOfMemoryError:[hukommelse opbrugt] under læsning af data fra Sqlite Android

  2. Trigger, der indsætter række i logtabel ved indsættelse eller sletning i en persontabel, der er kompileret med fejl

  3. Henter den sidste post i hver gruppe - MySQL

  4. Ingen sådan fil eller mappe eller ingen sådan vært er kendt, når der køres migreringer