ssMerge branch 'pms_plugins'

This commit is contained in:
2024-12-24 21:36:24 +09:00
66 changed files with 859 additions and 1967 deletions

View File

@@ -1,5 +1,5 @@
# settings.py
<<<<<<< HEAD
<<<<<<< HEAD
from .models import LocalDatabase
from decouple import config
@@ -11,11 +11,17 @@ def load_database_settings():
=======
from decouple import config
from django.conf import settings
=======
>>>>>>> pms_plugins
from django.apps import apps
def load_database_settings():
# Загружаем настройки из базы данных
def load_database_settings(databases):
"""
Загружает дополнительные базы данных из таблицы LocalDatabase и добавляет их в конфигурацию.
:param databases: Существующий словарь DATABASES
"""
LocalDatabase = apps.get_model('app_settings', 'LocalDatabase')
<<<<<<< HEAD
>>>>>>> antifraud
local_db_settings = LocalDatabase.objects.all()
@@ -29,32 +35,20 @@ def load_database_settings():
'HOST': db.host,
'PORT': db.port,
}
=======
>>>>>>> pms_plugins
# Вызов этой функции при старте проекта, например, в файле wsgi.py
load_database_settings()
# Чтение локальных баз данных
local_databases = LocalDatabase.objects.filter(is_active=True)
# Основная база данных
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': config('DB_NAME'),
'USER': config('DB_USER'),
'PASSWORD': config('DB_PASSWORD'),
'HOST': config('DB_HOST'),
'PORT': config('DB_PORT'),
},
}
# Добавление локальных баз данных
for db in local_databases:
DATABASES[db.name] = {
'ENGINE': 'django.db.backends.postgresql',
'NAME': db.name,
'USER': db.user,
'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}")