首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django 1.4.2 / South 0.7.6数据库错误- DEFAULT_DB_ALIAS

Django 1.4.2 / South 0.7.6数据库错误- DEFAULT_DB_ALIAS
EN

Stack Overflow用户
提问于 2013-01-27 09:47:24
回答 5查看 3.7K关注 0票数 1

当我运行python manage.py runserver时,会得到以下错误:

代码语言:javascript
运行
复制
Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x1cc9cd0>>
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py", line 91, in inner_run
    self.validate(display_num_errors=True)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 266, in validate
    num_errors = get_validation_errors(s, app)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/validation.py", line 30, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 158, in get_app_errors
    self._populate()
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 64, in _populate
    self.load_app(app_name, True)
  File "/usr/local/lib/python2.7/dist-packages/django/db/models/loading.py", line 88, in load_app
    models = import_module('.models', app_name)
  File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/usr/local/lib/python2.7/dist-packages/South-0.7.6-py2.7.egg/south/models.py", line 2, in <module>
    from south.db import DEFAULT_DB_ALIAS
  File "/usr/local/lib/python2.7/dist-packages/South-0.7.6-py2.7.egg/south/db/__init__.py", line 81, in <module>
    db = dbs[DEFAULT_DB_ALIAS]
KeyError: 'default'

这是我的settings.py

代码语言:javascript
运行
复制
 DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'foureggs',
        'USER': 'myuser',
        'PASSWORD': 'mypass',
        'HOST': '',
        'PORT': '',
    }
}

下面是一个具有相同问题的问题。答案是“在你的设置中应该有一个名为‘默认’的数据库”。我不太明白。我的db名是"foureggs“,所以我想使用它,很明显。

UPDATE: --当我做python manage.py diffsettings时,我得到以下输出,看起来不正确的(只粘贴相关的数据库行,其余的设置看起来没问题):

代码语言:javascript
运行
复制
DATABASES = {'default': {'ENGINE': 'django.db.backends.dummy', 'TEST_MIRROR': None, 'NAME': '', 'TEST_CHARSET': None, 'TIME_ZONE': 'UTC', 'TEST_COLLATION': None, 'PORT': '', 'HOST': '', 'USER': '', 'TEST_NAME': None, 'PASSWORD': '', 'OPTIONS': {}}}

我的项目中只有一个设置文件,它在应用程序目录中,这是正确的。以上数据库线从何而来?

更新2:我发现了的问题所在。这两行是我按照settings.py的指示加到Heroku部署指南上的。当我把它们注释掉的时候,一切都很好。现在我需要弄清楚它为什么会引起这个问题。

代码语言:javascript
运行
复制
# Parse database configuration from $DATABASE_URL
import dj_database_url
DATABASES['default'] =  dj_database_url.config()
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-01-27 10:46:30

这个问题显然与South无关,而与DB后端有关。

  1. 您可以从这里开始:"settings.DATABASES配置不当“使用django 1.4执行syncdb错误和相关问题
  2. 如果上述答案不起作用,首先检查是否安装了psycopg2库,并在您的sys.path中:如果没有,请安装这里的Psycopg2库安装说明
  3. 然后,您最终可以将引擎设置更改为:‘postgresql_瓶2’;这样,如果由于任何原因,内置引擎将无法工作,则可以绕过该内置引擎。
票数 0
EN

Stack Overflow用户

发布于 2013-02-26 18:23:16

我通过这样设置Heroku配置来解决这个问题:

代码语言:javascript
运行
复制
# Parse database configuration from $DATABASE_URL
import dj_database_url

dbconfig = dj_database_url.config()
if dbconfig:
    DATABASES['default'] =  dbconfig

# Honor the 'X-Forwarded-Proto' header for request.is_secure()
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
票数 2
EN

Stack Overflow用户

发布于 2013-01-27 19:41:10

代码语言:javascript
运行
复制
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'foureggs',
        'USER': 'myuser',
        'PASSWORD': 'mypass',
        'HOST': '',
        'PORT': '',
    }
}

您需要填写HOSTPORT,否则django不知道数据库服务器在哪里。只有当你使用的是sqlite时,这些才能是空的。

对于postgreql,默认端口是5432。如果您在同一台计算机上运行服务器,请使用'localhost'作为'HOST'密钥,否则将输入数据库服务器的IP地址。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14546176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档