prismasupabase
Prisma + Supabase 연결, 삽질 포인트 세 가지
Supabase에 Prisma를 붙이면서 세 번 막혔다. 나중의 나를 위해 기록.
1. direct host가 안 잡힌다
db.<ref>.supabase.co:5432 로 접속하면 DNS부터 실패하는 환경이 있다. 신규 프로젝트의 direct 커넥션은 IPv6 전용이라서다. 답은 풀러(pooler) 주소.
postgresql://postgres.<ref>:<pw>@aws-0-ap-northeast-2.pooler.supabase.com:6543/postgres?pgbouncer=true
2. 서버리스에서 60초 타임아웃
수집 배치가 로컬에선 3초, Vercel에선 60초 타임아웃. 원인은 코드가 아니라 지리였다. 함수는 미국(iad1), DB는 서울. 쿼리 하나에 왕복 200ms씩, 238번 upsert면 그걸로 끝.
// vercel.json
{ "regions": ["icn1"] }
함수 리전을 DB 옆으로 옮기니 60초 → 2.4초.
3. pgbouncer + connection_limit
transaction 풀러에 connection_limit=1 을 주면 병렬 작업이 전부 한 커넥션에 줄을 선다. 병렬 수집이면 적당히 풀어주자.
?pgbouncer=true&connection_limit=5
정리: 풀러 주소를 쓰고, 함수를 DB 옆에 두고, 커넥션 제한은 워크로드에 맞게.
조회 1