Django的psycopg2.OperationalError:fe_sendauth错误,但没有连接到PostgreSQL数据库
问题描述:
我用我的myapp以下sqlite的连接/ settings.py文件:Django的psycopg2.OperationalError:fe_sendauth错误,但没有连接到PostgreSQL数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':testdb:',
#I also tried 'NAME': 'testdb',
},
}
在我的manage.py文件我使用:
if __name__ == "__main__":
os.environ.setdefault("myapp.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
上运行./manage.py迁移命令行中我碰到下面的错误上:
django.db.utils.OperationalError: fe_sendauth: no password supplied
我试图消除psycopg2并重新运行迁移并得到以下错误:
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2'
我不能工作了,为什么Django是试图连接到一个数据库PSQL其中的应用程序的唯一DATABSES配置是sqlite3的。
这可能是由于依赖?
答
Django只使用DATABASES
设置来使用特定数据库驱动程序生成迁移。我相信在某个地方,有一个重要的覆盖你的DATABASES
设置。这些可能是按优先级顺序查找调试的地方。
- 任何进口到
settings.py
文件后,你设置DATABASES
变量可能覆盖它。 - 如果不是这种情况,有些依赖项必须手动覆盖此设置。你可能想看看你的
INSTALLED_APPS
。 - 如果仍然不够,您可能需要查看您正在尝试与django交互的项目中使用的任何其他依赖项。
答
试试这个,
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
这可能对你有所帮助。
+0
我得到和以前一样的错误,我很确定问题是依赖关系。如果我可以解决它,将工作,并发布答案 – proximacentauri
这可能是由于其中一个依赖关系。你介意分享你的整个settings.py文件吗?我相信有些地方,有一个导入覆盖你的'DATABASES'变量 –
@KrishnaChaitanyaKornepati是依赖关系,我编辑了dep中的源代码。要解决这个问题。你可以把你的评论放在上面,也许可以解释为什么它必须是一个依赖项,如果我没有在我的设置中使用psql任何地方,我会接受你的回答 – proximacentauri