Il s'agit d'un problème de configuration. Je l'ai résolu comme ceci :
- Modifier le tableau
entities
ainsi chaque connexion/base de données a son propre dossier avec des fichiers d'entité et nommez l'entité que vous utilisez le plus commedefault
:
// 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"],
])
- Créez des fichiers d'entité pour chaque base de données dans son dossier respectif :
src/db1/entity/Fruit.ts
> table en db1src/db2/entity/Vegetables.ts
> table en db2
Avec "synchronize": true
chaque table sera créée automatiquement dans la bonne base de données
- Accéder aux données dans les tables :
- Pour le
default
connexion ::
- Pour le
import { Fruit} from 'src/db1/entity/Fruit.ts'
fruits() {
return Fruit.find()
}
- Pour la connexion non par défaut :
import { getRepository } from 'typeorm'
import { Vegetable} from 'src/db2/entity/Vegetable.ts'
vegetables() {
return async () => await getRepository(Vegetable).find()
}
ou
async vegetables() {
return await getRepository(vegetables, 'connection2').find()
}
J'espère que cela aidera quelqu'un d'autre aux prises avec les mêmes problèmes que vous et moi.