これはセットアップの問題です。私はそれを次のように解決しました:
- 配列の
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"],
])
- データベースごとにそれぞれのフォルダにエンティティファイルを作成します:
-
src/db1/entity/Fruit.ts
>db1のテーブル -
src/db2/entity/Vegetables.ts
>db2のテーブル
-
"synchronize": true
各テーブルは正しいデータベースに自動的に作成されます
- テーブル内のデータへのアクセス:
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()
}
これが、あなたや私と同じ問題に苦しんでいる他の誰かの助けになることを願っています。