Я создаю централизованное приложение django, которое будет взаимодействовать с динамическим числом баз данных с практически идентичной схемой. Эти базы данных также используются парой устаревших приложений, некоторые из которых на PHP. Нашим решением избежать нескольких хранилищ учетных данных БД является сохранение этой информации в общих установочных файлах вне соответствующих приложений. Файлы настроек могут быть созданы, изменены или удалены без перезапуска приложения django.
Для каждого запроса к приложению django будет заголовок http или параметр url, который можно использовать для определения того, какой файл настроек следует просмотреть, чтобы определить, какие учетные данные базы данных использовать.
Моя первая мысль - использовать специальное промежуточное ПО django, которое будет анализировать файлы настроек (возможно, с кэшированием) и создавать новый объект соединения при каждом запросе, исправляя его в django.db перед любой операцией ORM.
Есть ли более изящный способ справиться с этой ситуацией? Есть ли какие-либо проблемы с безопасностью потоков, которые я должен рассмотреть с помощью промежуточного программного обеспечения?