繁体   English   中英

Django psycopg2.OperationalError:fe_sendauth错误,但未连接到PostgreSQL数据库

[英]Django psycopg2.OperationalError: fe_sendauth error but not connecting to postgresql database

我在myapp / settings.py文件中使用以下sqlite连接:

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的。

这可能是由于依赖关系造成的吗?

尝试这个,

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'),
    }
}

这可能对您有帮助。

Django仅使用DATABASES设置来使用特定的数据库驱动程序生成迁移。 我相信某个地方有一个导入将覆盖您的DATABASES设置。 这些是按优先级顺序查找调试的可能位置。

  1. 设置DATABASES变量后,任何导入settings.py文件的操作都可能会覆盖它。
  2. 如果不是上述情况,则必须手动某些依赖项覆盖此设置。 您可能需要查看INSTALLED_APPS
  3. 如果还不够,您可能需要查看项目中尝试与django进行交互的任何其他依赖项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM