如何配置 settings.DATABASES?

Posted

技术标签:

【中文标题】如何配置 settings.DATABASES?【英文标题】:How to configure settings.DATABASES? 【发布时间】:2014-07-20 18:26:58 【问题描述】:

./manage.py syncdb 显示一些错误

(ENV)vijay@vijay-Ideapad-Z570:~/nightybuild/heroku-landing$ ./manage.py syncdb 配置不当:settings.DATABASES 配置不正确。请提供 ENGINE 值。有关更多详细信息,请查看设置文档。 (ENV)vijay@vijay-Ideapad-Z570:~/nightybuild/heroku-landing$

在我的 settings.py 中

数据库 = “默认”: 'ENGINE': 'django.db.backends.', # 添加 'postgresql_psycopg2'、'mysql'、'sqlite3' 或 'oracle'。 'NAME': '', # 如果使用 sqlite3,则为数据库文件的路径。 # 以下设置不与 sqlite3 一起使用: '用户': '', '密码': '', 'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. 'PORT': '', # 默认设置为空字符串。

但我的应用程序在 heroku 中成功运行。当部署其自动 heroku postgres 时。但是在本地开发中却显示了这个错误。

你能告诉我如何为本地设置数据库吗?

【问题讨论】:

【参考方案1】:

您使用的是什么类型的数据库? Postgres、MySQL、SQLite?这将是您的 ENGINE 值。

另外,您的本地 postgres 用户名和密码是什么?你的数据库名称呢?

下面是一个名为 testdbpostgres 数据库的示例,其用户名 myusername 和密码 mypassword

DATABASES = 
                 'default': 
                       'ENGINE': 'django.db.backends.postgresql_psycopg2',
                       'NAME': 'testdb',
                       'USER': 'myusername',
                      'PASSWORD': 'mypassword',
                     'HOST': '',
                     'PORT': '',

您可能需要根据需要进行更改。最大的变化可能是您的ENGINE 值。如果使用 MySQL,则将 postgresql_psycopg2 更改为 mysql,如果使用 SQLite,则将 sqlite 更改为。此外,如果使用 SQLite,您将没有 USERPASSWORD 的值。

【讨论】:

这个错误我该怎么办? @Alex ImportError:没有名为 psycopg2.extensions 的模块 您需要先安装软件包。试试pip install psycopg2 设置HOST: 'localhost', 没有这个有时会出现奇怪的错误

以上是关于如何配置 settings.DATABASES?的主要内容,如果未能解决你的问题,请参考以下文章

安装 Graphite 时出现 Django 错误 - settings.DATABASES 配置不正确。请提供 ENGINE 值

Heroku 上带有 Postgresql 的 Django - settings.DATABASES 配置不正确。请提供名称值

DATABASES 配置不正确 rds postgres django

django操作多数据库

django_ORM

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