【发布时间】:2017-08-21 00:19:39
【问题描述】:
我正在尝试将数据库从 sqlite 迁移到 postgresql...所以我输入:
sudo -u postgres psql
postgres=# ALTER USER postgres WITH PASSWORD 'newpassword';
输出返回ALTER ROLE
但是当我输入python manage.py migrate 时,我总是收到同样的错误:
django.db.utils.OperationalError: FATAL: 密码验证 用户“道格拉斯”失败
这是我的 settings.py 的数据库部分。
# Old, using mysqlite
"""
DATABASES = {
#'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
#}
'default': dj_database_url.config(default='postgres://localhost:5432/postgres_db_name'),
}
"""
# New, using postgres
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'douglas_db',
'USER': 'douglas',
'PASSWORD': 'vamointer',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
注意:当我运行 'ALTER USER postgres WITH PASSWORD' 时,我输入了在 settings.py 中定义的相同密码。
【问题讨论】:
-
错误提到用户帐户
user,但您的alter语句正在更改用户postgres的密码。最后,您的 settings.py 引用了另一个用户;douglas。您实际想使用哪个用户,您是否正在运行仅引用该用户的命令? -
很公平。 SQL查询呢?你应该运行
ALTER USER douglas WITH PASSWORD 'vamointer'; -
对不起,我不明白你的意思。在尝试运行迁移之前,您是否运行了我在 postgres 数据库上编写的查询?
-
现在这个错误:“错误:角色“道格拉斯”不存在”=[
-
这更像是:D 我会在下面添加一个答案。
标签: python django postgresql