from .models import LocalDatabase from decouple import config from django.conf import settings from .models import LocalDatabase from django.apps import apps def load_database_settings(databases): """ Загружает дополнительные базы данных из таблицы LocalDatabase и добавляет их в конфигурацию. :param databases: Существующий словарь DATABASES """ LocalDatabase = apps.get_model('app_settings', 'LocalDatabase') local_db_settings = LocalDatabase.objects.all() for db in local_db_settings: # Пример добавления дополнительной базы данных settings.DATABASES[db.name] = { 'ENGINE': 'django.db.backends.mysql', 'NAME': db.db_name, 'USER': db.username, 'PASSWORD': db.password, 'HOST': db.host, 'PORT': db.port, } try: local_db_settings = LocalDatabase.objects.filter(is_active=True) for db in local_db_settings: databases[db.name] = { 'ENGINE': db.engine, # Можно хранить тип движка в базе 'NAME': db.database, 'USER': db.user, 'PASSWORD': db.password, 'HOST': db.host, 'PORT': db.port, 'ATOMIC_REQUESTS': True, # Убедитесь, что добавляете ATOMIC_REQUESTS } except Exception as e: print(f"Ошибка загрузки локальных баз данных: {e}")