Đây là một vấn đề thiết lập. Tôi đã giải quyết nó như thế này:
- Sửa đổi mảng
entities
vì vậy mỗi kết nối / cơ sở dữ liệu có thư mục riêng với các tệp thực thể và đặt tên cho thực thể mà bạn sử dụng nhiều nhất làmdefault
:
// 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"],
])
- Tạo tệp thực thể cho từng cơ sở dữ liệu trong thư mục tương ứng của nó:
-
src/db1/entity/Fruit.ts
> bảng trong db1 -
src/db2/entity/Vegetables.ts
> bảng trong db2
-
Với "synchronize": true
mỗi bảng sẽ được tạo tự động trong cơ sở dữ liệu chính xác
- Truy cập dữ liệu trong bảng:
- Đối với
default
kết nối ::
- Đối với
import { Fruit} from 'src/db1/entity/Fruit.ts'
fruits() {
return Fruit.find()
}
- Đối với kết nối không mặc định:
import { getRepository } from 'typeorm'
import { Vegetable} from 'src/db2/entity/Vegetable.ts'
vegetables() {
return async () => await getRepository(Vegetable).find()
}
hoặc
async vegetables() {
return await getRepository(vegetables, 'connection2').find()
}
Tôi hy vọng điều này sẽ giúp những người khác đang gặp khó khăn với các vấn đề tương tự như bạn và tôi.