settings application
.env db params+global settings in admin model ECVI plugin module
This commit is contained in:
50
settings/settings.py
Normal file
50
settings/settings.py
Normal file
@@ -0,0 +1,50 @@
|
||||
# settings.py
|
||||
|
||||
from .models import LocalDatabase
|
||||
from decouple import config
|
||||
from django.conf import settings
|
||||
from .models import LocalDatabase
|
||||
|
||||
def load_database_settings():
|
||||
# Загружаем настройки из базы данных
|
||||
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,
|
||||
}
|
||||
Reference in New Issue
Block a user