如何配置settings.DATABASES?

0 投票
1 回答
609 浏览
提问于 2025-04-18 08:06

./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 文件中

DATABASES = {
                 'default': {
                       'ENGINE': 'django.db.backends.', # 这里需要添加 'postgresql_psycopg2'、'mysql'、'sqlite3' 或 'oracle'。
                       'NAME': '', # 如果使用 sqlite3,可以在这里填写数据库文件的路径。
                       # 以下设置在使用 sqlite3 时不需要:
                       'USER': '',
                      'PASSWORD': '',
                     'HOST': '', # 如果是本地使用,可以留空,或者用 '127.0.0.1'。
                     'PORT': '', # 留空表示使用默认端口。
}

但是我的应用在 Heroku 上运行得很好。当我部署时,它会自动配置 Heroku 的 Postgres 数据库。但在本地开发时却出现了这个错误。

你能告诉我怎么在本地设置数据库吗?

1 个回答

0

你在用什么类型的数据库呢?是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 的值。

撰写回答