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

时间:2014-11-28 20:00:51

标签: python django sqlite

我尝试了一千个帖子,这对我没有任何作用......

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

提出不正确的配置(" settings.DATABASES不正确   配置。 " django.core.exceptions.ImproperlyConfigured:   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':是的,'引擎':   ' django.db.backends.dummy',' ATOMIC_REQUESTS':False,' NAME':'',   ' CONN_MAX_AGE':0,' TIME_ZONE':' UTC',' PORT':'',' ;主持人':'','用户':   '',' TEST':{' COLLATION':无,' CHARSET':无,' NAME':没有,   ' MIRROR':无},' PASSWORD':'','选项':{}}}

所以ENGINE仍然是django.db.backends.dummy ...

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:1)

所以我自己设法解决了,问题是我有

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。

答案 1 :(得分:0)

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