Untuk menjawab pertanyaan saya sendiri:
Saat ini tidak ada cara untuk membuat instance repositori TypeORM dengan skema yang berbeda saat runtime tanpa membuat koneksi baru.
Jadi, hanya dua opsi yang tersisa bagi pengembang untuk multi tenancy berbasis skema adalah:
- Menyiapkan koneksi baru untuk terhubung dengan skema yang berbeda dalam db yang sama saat runtime. Misalnya. lihat NestJS Request Scoped Multitenancy untuk Beberapa Database . Namun, seseorang harus berusaha keras untuk menggunakan kembali koneksi dan dan menyadari batas koneksi .
- Meninggalkan gagasan bekerja dengan RepositoryApi dan kembali menggunakan
createQueryBuilder
(atau mengeksekusi kueri SQL melaluiquery()
).
Untuk penelitian lebih lanjut, berikut adalah beberapa masalah GitHub TypeORM yang melacak gagasan untuk mengubah skema untuk koneksi atau repositori yang ada saat runtime (mirip dengan apa yang diminta di OP):
- Arsitektur multi-penyewa menggunakan skema. #4786
mengusulkan sesuatu seperti
this.photoRepository.useSchema('customer1').find()
- Penanganan skema database #3067
mengusulkan sesuatu seperti
getConnection().changeDefaultSchema('myschema')
- Perubahan waktu proses skema #4473
- Tambahkan kemampuan untuk menyetel skema postgresql per panggilan #2439
P.S. Jika TypeORM memutuskan untuk mendukung ide yang dibahas dalam OP, saya akan mencoba memperbarui jawaban ini.