python - ImproperlyConfigured ("settings.DATABASES is improperly configured. ") 尝试设置 Django 时出错

标签 python sql django heroku celery

尝试按照说明进行操作 here在 Heroku 上设置 Django 实例。

Celery 的安装到此结束,进行到以下步骤:

$ python manage.py syncdb

当我收到以下错误时:

raise ImproperlyConfigured("settings.DATABASES is improperly configured. "django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.

我相信我的 settings.py 文件在正确的位置 (project-name/project-name),我正在运行 django 1.4.3 ,但是当我尝试运行 manage.py diffsettings 时,我得到以下输出:

BROKER_BACKEND = 'django' ### 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': {}}}

完全不知道 django.db.backends.dummy 条目来自哪里,我的 settings.py'ENGINE': 'django.db. backends.postgresql_psycopg2',我认为这是正确的条目,即使 Heroku 说明没有告诉您随时更新它。

我有什么想法需要在这里编辑吗?

最佳答案

我遇到了同样的问题。在 Heroku 文档中 https://devcenter.heroku.com/articles/django#prerequisites ,它说要将以下内容添加到 settings.py:

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

可以传入一个参数:

DATABASES['default'] =  dj_database_url.config(default='postgres://user:pass@localhost/dbname')

这将允许您在本地和 Heroku 上进行开发。实际解决我遇到的问题的部分是 DATABASE_URL 的 Heroku 配置环境变量实际上并未设置。为了设置这个,我跑了

$ heroku config

我看到数据库 URL 分配给了一个单独的配置变量。所以我创建了一个新变量:

$ heroko config:add DATABASE_URL={#the database url}

这解决了我的问题。我希望它能帮助其他有类似问题的人。

关于python - ImproperlyConfigured ("settings.DATABASES is improperly configured. ") 尝试设置 Django 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14795824/

相关文章:

表单中的 django 表单集/表单中的动态数组

python - 如何为 DICOM 文件生成 SOPInstance UID?

mysql - 日期存储为文本查询介于和更高之间

sql - 使用 CTE 的开始和结束日期出现问题

SQL Server 2012 - 从特定值开始为不同记录集分配递增数字的最佳方法

django - 如何使用 ModelSerializer 添加额外的顶级 JSON 字段

python 我可以将用户名和密码提供给 os.listdir 吗?

python - argparse 没有被触发

python - 如何用堆叠在 numpy 数组中的一组图像制作电影?

javascript - 使用Scrapy抓取时无法在源代码中找到显示的数据