settings.DATABASES
is improperly configured. Please supply the ENGINE value.
-
Occasion 场景: 使用命令迁移数据库时
-
尝试解决方案
-
根据控制台信息找到检查文件,查看Django 内部定义,可知报错是因为 ENGING 未配置,但 settings文件已经实际配置
""" Dummy database backend for Django. Django uses this if the database ENGINE setting is empty (None or empty string). Each of these API functions, except connection.close(), raise ImproperlyConfigured. """ from django.core.exceptions import ImproperlyConfigured from django.db.backends.base.base import BaseDatabaseWrapper from django.db.backends.base.client import BaseDatabaseClient from django.db.backends.base.creation import BaseDatabaseCreation from django.db.backends.base.introspection import BaseDatabaseIntrospection from django.db.backends.base.operations import BaseDatabaseOperations from django.db.backends.dummy.features import DummyDatabaseFeatures def complain(*args, **kwargs): raise ImproperlyConfigured("settings.DATABASES is improperly configured. " "Please supply the ENGINE value. Check " "settings documentation for more details.")
-
此时发散思维,考虑到本项目有两个
sttings.py
配置文件,那么manage.py
如何区分两个文件呢? -
由此找到
manage.py
中指定sttings.py
的不分,新旧配置如下:def main(): # old---> os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'floatlightapi.settings') os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'floatlightapi.settings.dev') try: from django.core.management import execute_from_command_line except ImportError as exc: execute_from_command_line(sys.argv)
-
第二个疑问?为什么在
sttings.py
未指定的情况下,Django 项目却可以正常运行并且提示迁移文件呢?-
答:已经在IDE配置server时指定了具体的配置文件,具体内容为:
DJANGO_SETTINGS_MODULE = floatlightapi.settings.dev
-
-
-
成功迁移截图