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

TypeORM nepodporuje nastavení databáze na dekorátoru entity

Toto je problém s nastavením. Vyřešil jsem to takto:

  1. Upravte pole entities takže každé připojení/databáze má svou vlastní složku se soubory entit a pojmenujte entitu, kterou používáte nejčastěji, jako 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. Vytvořte soubory entit pro každou databázi v příslušné složce:
    • src/db1/entity/Fruit.ts> tabulka v db1
    • src/db2/entity/Vegetables.ts> tabulka v db2

S "synchronize": true každá tabulka bude automaticky vytvořena ve správné databázi

  1. Přístup k datům v tabulkách:
    • Pro default připojení::
import { Fruit} from 'src/db1/entity/Fruit.ts'
  fruits() {
    return Fruit.find()
  }
  • Pro jiné než výchozí připojení:
import { getRepository } from 'typeorm'
import { Vegetable} from 'src/db2/entity/Vegetable.ts'
  vegetables() {
      return async () => await getRepository(Vegetable).find()
  }

nebo

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

Doufám, že to pomůže někomu dalšímu, kdo se potýká se stejnými problémy jako vy a já.




  1. Jak zaokrouhlit hodnotu v milisekundách od časového razítka (0) v PostgreSQL?

  2. syntaxe výběru Oracle SQL s klauzulí GROUP BY a HAVING

  3. Jak propojit MySQL s Javou?

  4. Zobrazení zprávy, když nebyly nalezeny žádné výsledky vyhledávání PHP MySQL