Multiple Database
Menyetel Multiple Koneksi ke database secara dinamis sesuai dengan domain yang request
Last updated
Menyetel Multiple Koneksi ke database secara dinamis sesuai dengan domain yang request
Last updated
Setelan ini akan berguna jika aplikasi backend kamu memerlukan routing database untuk setiap domain yang melakukan request data. Berikut illustrasi kasus nya:
Backend Saba Framework Python kita beri nama : "api.domainku.oh.yeah"
Lalu aplikasi frontend "domainku.oh.yeah" milik corporate A & "domainlainnya.oh.yeah" milik corporate B meminta data pengguna ke backend kita.
Tentu data pengguna diberikan kepada "domainku.oh.yeah" & "domainlainnya.oh.yeah" harus berbeda,
Maka aplikasi Saba Framework Python kita harus melakukan routing ke database sesuai dengan domain yang request tersebut.
Cara melakukan routingnya seperti ini:
Buka File config.py pada folder root config.py, lalu sesuaikan seperti contoh ini:
Tambahkan sebuah decorator bawaan flask @app.before_request pada file run.py yang terletak di root. Fungsi ini akan dijalankan ketika ada user yang melakukan request ke aplikasi kita, contohnya seperti ini:
Lalu buka file extension.py pada folder /app dan setel menjadi seperti ini:
Buka file app/__init__.py lalu sesuaikan seperti ini:
Buka file .env lalu setel koneksi sesuai dengan domain yang nanti akan request seperti ini:
DATABASE_URL_MULTI="{ 'default': 'mssql+pyodbc://sa:passwordrahasia@localhost/namadatabase_demo?driver=SQL+Server', 'domainku.oh.yeah': 'mssql+pyodbc://sa:passwordrahasia@localhost/namadatabase_1?driver=SQL+Server', 'domainlainnya.oh.yeah': 'mssql+pyodbc://sa:passwordrahasia@localhost/namadatabase_2?driver=SQL+Server' }"
Jalankan kembali aplikasi backend, kemudian lakukan pengujian dari beberapa domain.