Django 1.7.1-继续使用虚拟数据库引擎

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 1.7.1-继续使用虚拟数据库引擎相关的知识,希望对你有一定的参考价值。

我尝试了一千篇文章,对此没有任何帮助...

  • 所以我将$ DJANGO_SETTINGS_MODULE设置为myproj.settings
  • 如果我运行python manage.py --setting = eventprowl.settings我得到

raise ImproperlyConfigured(“ settings.DATABASES不正确配置。 ” django.core.exceptions.ImproperlyConfiged:settings.DATABASES配置不正确。请提供引擎值。检查设置文档以获取更多详细信息。

  • 在我的环境中,我有以下内容

DATABASE_ENGINE ='django.db.backends.sqlite3'

DATABASE_NAME     = os.path.join(BASE_DIR, 'db.sqlite3')
DATABASE_USER     = ''
DATABASE_PASSWORD = ''
DATABASE_HOST     = ''
DATABASE_PORT     = ''

DATABASES = 
  'default': 
    'ENGINE':   DATABASE_ENGINE,
    'NAME':     DATABASE_NAME,
    'USER':     DATABASE_USER,
    'PASSWORD': DATABASE_PASSWORD,
    'HOST':     DATABASE_HOST,
    'PORT':     DATABASE_PORT,
  

我尝试再次卸载并安装Django,但没有任何改变。我的文件夹结构是

myproj >
   manage.py
   myproj >
      settings.py

而且我没有任何其他设置文件...但是,当我这样做时

python manage.py diffsettings

我得到数据库的以下信息:

DATABASES = '默认':'AUTOCOMMIT':真,'ENGINE':'django.db.backends.dummy','ATOMIC_REQUESTS':False,'NAME':``,'CONN_MAX_AGE':0,'TIME_ZONE':'UTC','PORT':'','HOST':'','USER':'','TEST':'COLLATION':无,'CHARSET':无,'NAME':无,'MIRROR':None,'PASSWORD':'','OPTIONS':]

所以引擎仍然是django.db.backends.dummy ...

有什么想法吗?谢谢。

答案

所以我设法自己修复它,问题是我有

DATABASES['default'] =  dj_database_url.config()

这里。因为我使用的是Heroku,所以我删除了这一行并开始工作,现在最终的settings.py文件如下所示:

import dj_database_url

# Database
# https://docs.djangoproject.com/en/1.7/ref/settings/#databases

if DEBUG:
    DATABASES = 
        'default': 
            'ENGINE': 'django.db.backends.sqlite3', 
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
            'USER': '',                      
            'PASSWORD': '',             
            'HOST': '',                     
            'PORT': '',                     
        
        
else:
    DATABASES = 'default': dj_database_url.config(default='postgres://localhost')

您必须记住在部署时将DEBUG变量值更改为False。

另一答案

这也会在更高版本中发生。 Django 2.2发生在我身上基本上发生这种情况是因为dj_database_url.config()查找DATABASE_URL,并且在找不到URL时默认为虚拟引擎。

以上是关于Django 1.7.1-继续使用虚拟数据库引擎的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中使用不同的数据库引擎进行测试和生产

day19 django继续

修改django配置文件settings

Django 设置使用两个引擎配置数据库

Django的模版引擎与模版使用

使用 Django 的复合/复合主/唯一键