Как ясно указывает на ошибку, слишком много подключений к базе данных.Поэтому нам нужно выяснить, сколько существует связей, кто их создает и почему они создаются.Чтобы либо ограничить потребителей, либо увеличить количество доступных подключений.
Сначала мы можем использовать CLI heroku для проверки количества использованных и доступных подключений:
$ heroku pg:info
=== DATABASE_URL
Plan: Private 2
Status: Available
HA Status: Available
Data Size: 2.23 GB
Tables: 83
PG Version: 10.1
Connections: 26/400
Connection Pooling: Available
ДляБолее подробную информацию о том, как исследовать базы данных heroku postgres, смотрите: https://devcenter.heroku.com/articles/heroku-postgresql#pg-info
Для дальнейшего изучения того, кто подключен к вашей базе данных, вы можете использовать psql или pgAdmin.Если вы используете pgAdmin, вы можете выбрать базу данных, щелкнуть вкладку «Панель инструментов» и выбрать панель активности сервера в нижней части страницы, где отображаются все подключенные сеансы.Если вы используете psql, вы можете написать следующее:
SELECT pid as process_id,
usename as username,
datname as database_name,
client_addr as client_address,
application_name,
backend_start,
state,
FROM pg_stat_activity;
Более подробно о том, как посмотреть: https://dataedo.com/kb/query/postgresql/list-database-sessions
К настоящему времени вы, вероятно, определили, кто создает соединения с вашей базой данных.и может ограничить использование клиентом меньше (или увеличить количество доступных подключений к базе данных).
Конечно, одним из возможных потребителей соединений с базой данных является сам сервер prisma.К счастью, конфигурация prisma предоставляет параметр для ограничения соединений с базой данных.
Свойство connectionLimit в PRISMA_CONFIG определяет количество соединений с базой данных, которые будет использовать служба Prisma.
Подробнее об этом можно прочитать здесь: https://www.prisma.io/docs/prisma-server/database-connector-POSTGRES-jgfr/#managing-database-connections
Если вы используете heroku для запуска док-контейнера с вашим сервером prisma, PRISMA_CONFIG может выглядеть так:
port: $PORT
managementApiSecret: ${PRISMA_MANAGEMENT_API_SECRET}
databases:
default:
connector: postgres
migrations: true
connectionLimit: 2
uri: ${DATABASE_URL}?ssl=1
Надеюсь, этот структурированный подход помог.Дайте мне знать, если вам нужно больше разъяснений.Если это так, просьба сообщить подробности о характере существующих подключений к базе данных.