PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

TypeORM не поддържа настройката на базата данни в декоратора на обекти

Това е проблем с настройката. Реших го така:

  1. Променете масива entities така че всяка връзка/база данни има своя собствена папка с файлове на обекти и именувайте обекта, който използвате най-много като 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. Създайте файлове на обекти за всяка база данни в съответната папка:
    • src/db1/entity/Fruit.ts> таблица в db1
    • src/db2/entity/Vegetables.ts> таблица в db2

С "synchronize": true всяка таблица ще бъде създадена автоматично в правилната база данни

  1. Достъп до данни в таблиците:
    • За default връзка::
import { Fruit} from 'src/db1/entity/Fruit.ts'
  fruits() {
    return Fruit.find()
  }
  • За връзката, която не е по подразбиране:
import { getRepository } from 'typeorm'
import { Vegetable} from 'src/db2/entity/Vegetable.ts'
  vegetables() {
      return async () => await getRepository(Vegetable).find()
  }

или

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

Надявам се това да помогне на някой друг, който се бори със същите проблеми като вас и мен.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. django.db.utils.ProgrammingError:връзката app_user не съществува по време на теста на manage.py

  2. Избиране на всички записи с SQL LIMIT и OFFSET заявка

  3. django.db.utils.ProgrammingError:връзката вече съществува

  4. gem install pg не работи на OSX Lion

  5. Подаване на име на таблица като параметър в psycopg2