【问题标题】:Django; django.db.utils.OperationalError: FATAL: no pg_hba.conf entry for host, user, database姜戈; django.db.utils.OperationalError: FATAL: no pg_hba.conf entry for host, user, database
【发布时间】:2018-09-18 03:25:26
【问题描述】:

我是一个初学者,我一直在创建一个 Django 项目。我正在尝试将sqlite3 db 切换为postgresql。但是当我做make migrations 时,发生了这个错误。

django.db.utils.OperationalError: FATAL: no pg_hba.conf entry for host, user, database

我搜索了这个错误。还有人查了pg_hba.conf文件,但我不知道这个文件在哪里。

当我之前创建项目并做同样的事情时,也没有这个错误。这次为什么会出现这个错误?是什么原因?

我该如何解决这个错误?

这是settings.py中的配置部分

DATABASES = {
'default': {

    #elephantsql
    'ENGINE': 'django.db.backends.postgresql',
    'NAME': os.environ.get('DATABASE_NAME', ''),
    'USERS': os.environ.get('DATABASE_USER', ''),
    'PASSWORD': os.environ.get('DATABASE_PASSWORD', ''),
    'HOST': os.environ.get('DATABASE_HOST', ''),
    'PORT': os.environ.get('DATABASE_PORT'),
    }
}

【问题讨论】:

  • 请发布您的settings.py。特别是您配置数据库的部分。
  • 我更新了我的问题。
  • 好的,os.environ.get('DATABASE_HOST', ''), 的值是多少?如果不是localhost127.0.0.1(即没有与Django 安装在同一台服务器上运行),您应该配置您的PostgreSQL 服务器以响应远程调用。
  • 你是否已经让连接监听所有?如果您是要迁移的远程服务器或其他服务器。
  • 使连接监听是什么意思?我在 eleplantsql 上创建了 db 实例,并将我创建的实例的主机名设置为 DATABASE_HOST

标签: python django postgresql


【解决方案1】:

在我看来像是一个错字:
'USERS': os.environ.get('DATABASE_USER', ''),
应该是:
'USER': os.environ.get('DATABASE_USER', ''),

【讨论】:

    猜你喜欢
    • 2019-04-25
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2020-05-27
    • 2018-12-29
    • 1970-01-01
    相关资源
    最近更新 更多