61 lines
1.8 KiB
Python
61 lines
1.8 KiB
Python
# settings.py
|
|
|
|
<<<<<<< HEAD
|
|
from .models import LocalDatabase
|
|
from decouple import config
|
|
from django.conf import settings
|
|
from .models import LocalDatabase
|
|
|
|
def load_database_settings():
|
|
# Загружаем настройки из базы данных
|
|
=======
|
|
from decouple import config
|
|
from django.conf import settings
|
|
from django.apps import apps
|
|
|
|
def load_database_settings():
|
|
# Загружаем настройки из базы данных
|
|
LocalDatabase = apps.get_model('app_settings', 'LocalDatabase')
|
|
>>>>>>> antifraud
|
|
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,
|
|
}
|
|
|
|
# Вызов этой функции при старте проекта, например, в файле 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,
|
|
}
|