我已经有一个使用sqlite3的正常运行的网站,但是我更喜欢使用一个立即使用PostgreSQL / PostGIS的空项目来重新启动我的网站项目。在settings.py
的配置结束时,我将进行转储以将所有sqlite3表上载到新数据库中。旧项目的任何模型都不会修改到该新项目中。新旧项目之间的区别只是DBMS。
这是 settings.py :
INSTALLED_APPS = [
...
'django.contrib.gis',
]
...
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'my_project_name',
'USER': 'db_user',
'PASSWORD': 'password_of_db_user',
}
}
此后,我尝试使用python3 manage.py runserver
测试服务器,但看到此错误消息:
django.db.utils.OperationalError:严重:对等身份验证失败 用户“ db_user”
我确定 NAME , USER 和 PASSWORD 是正确的,数据库位于本地主机中。几个星期前,我创建了另一个简单的项目,以使用相同的设置来学习GeoDjango,并且该网站运行良好。
答案 0 :(得分:1)
好像您在配置中缺少host
字段:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'my_project_name',
'USER': 'db_user',
'PASSWORD': 'password_of_db_user',
'HOST': 'localhost' # missing part
}
}