prisma-connection-pool-exhaustion
Rozwiąż problem wyczerpania połączeń Prismy w środowiskach serverless
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill diagnozuje i naprawia błędy "Too many connections" oraz wyczerpania puli połączeń Prismy w funkcjach serverless (Vercel, AWS Lambda, Netlify). Stosuj go, gdy widzisz błąd P2024 o timeout'cie połączenia, PostgreSQL "too many connections for role", lub gdy baza działa lokalnie ale pada w produkcji. Problem występuje, ponieważ każdy cold start funkcji serverless tworzy nową instancję klienta Prismy z domyślnie 5 połączeniami — przy wielu równoczesnych żądaniach szybko wyczerpujesz limit bazy danych (zwykle 20-100 połączeń).
Jak używać
Zidentyfikuj symptom: sprawdź logi produkcji pod kątem błędu "P2024: Timed out fetching a new connection from the connection pool", "FATAL: too many connections for role" (PostgreSQL) lub "Too many connections" (MySQL). Jeśli baza działa lokalnie ale pada w produkcji, zwłaszcza podczas skoków ruchu, to znak że wyczerpujesz pulę połączeń.
Sprawdź środowisko: potwierdź że deployujesz na Vercel, AWS Lambda, Netlify Functions lub podobnym hostingu serverless, oraz że używasz Prismy z PostgreSQL, MySQL lub inną bazą wymagającą połączeń.
Wdrażaj connection pooler: zamiast łączyć się bezpośrednio do bazy, użyj usługi poolingu połączeń. Dla Supabase zmień connection string w .env na pooled URL (port 6543 zamiast 5432) z parametrem pgbouncer=true. Dla Neon użyj domyślnego connection stringa z parametrem sslmode=require.
Zaktualizuj zmienną DATABASE_URL: w pliku .env lub w panelu konfiguracji hosta ustaw nowy connection string wskazujący na pooler zamiast bezpośrednio na bazę danych.
Wdróż zmiany: push kod do repozytorium i wyzwól redeploy na platformie hostingowej, aby nowe zmienne środowiskowe weszły w życie.
Monitoruj połączenia: sprawdź dashboard bazy danych aby potwierdzić że liczba aktywnych połączeń spadła poniżej limitu i błędy timeout'u zniknęły.