Почему эта локальная конфигурация django DATABASES не поддерживается в django 5.0.1?
Я использую включение настроек local.py, чтобы разработчики могли использовать sqlite3, а развернутые сайты могли использовать такие вещи, как postgres. Это local_py_example.py (использую /tmp только для этой репродукции):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '/tmp/db.sqlite3',
}
}
Файл настроек импортирует это таким образом:
import os
import sys
from django.utils.translation import gettext_lazy as _
from utilities.find_base_dir import find_base_dir
# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = find_base_dir()
sys.path.insert(0, f"{BASE_DIR.parent}") # will look for local.py in the parent directory
try:
# noinspection PyPackageRequirements,PyUnresolvedReferences
from local import *
except ImportError:
from club_site.settings.local_py_example import *
sys.path.pop(0)
... (no DATABASES declared in settings (ONLY IN local.py))
print(f"sqlite: {DATABASES['default']['NAME']}") # at end just for debugging this
Например, 'django migrate' создает базу данных в неправильном месте (в BASE_DIR), несмотря на то, что в конце настроек указано правильное местоположение (/tmp/db.sqlite3).