Ошибка базы данных Heroku Postgres: "сервер не поддерживает SSL, но SSL был необходим"
При запуске моего приложения Django на Heroku я вижу следующую ошибку:
connection to server at "127.0.0.1", port 6000 failed: server does not support SSL, but SSL was required
В settings.py
у меня переменная DATABASES настроена следующим образом:
if env.get("DJANGO_DEVELOPMENT"):
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"OPTIONS": {
"service": env.get("DATABASE_SERVICE"),
},
}
}
else:
DATABASES = {
"default": dj_database_url.config(
conn_max_age=500, ssl_require=True
)
}
Однако я заметил, что на странице ошибки указана переменная DATABASES, и она включает sslmode': 'require
:
DATABASES
{'default': {'ATOMIC_REQUESTS': False,
'AUTOCOMMIT': True,
'CONN_HEALTH_CHECKS': False,
'CONN_MAX_AGE': 600,
'ENGINE': 'django.db.backends.postgresql',
'HOST': '127.0.0.1',
'NAME': 'db1',
'OPTIONS': {'sslmode': 'require'},
'PASSWORD': '********************',
'PORT': 6000,
'TEST': {'CHARSET': None,
'COLLATION': None,
'MIGRATE': True,
'MIRROR': None,
'NAME': None},
'TIME_ZONE': None,
'USER': 'zvchpwwqszbgax'}}
Может быть, я что-то неправильно настроил? Я предполагаю, что Heroku включает SSL для подключенной базы данных Postgres, и вижу его как "обязательный", похоже, что правильная настройка включена.
Вам необходимо включить SSL в pgBouncer. Это означает установку client_tls_sslmode
на allow
или require
.