prisma와 supabase 사용시 db pull 및 db push 연결 안되는 문제 해결 방법

prisma와 supabase 사용시 db pull 및 db push 사용시 무한 로딩에 대한 해결 방법을 알아봅니다.

  • @prisma/client: ^6.3.1
  • @supabase/supabase-js: ^2.48.1

문제점

prisma와 supabase를 사용하면서 db pull을 하거나 db push시에 별 다른 에러코드나 메시지 없이 무한 로딩으로 연결이 안되는 경우가 있습니다.

이번에 겪은 이슈는 npx prisma db pull을 했을 때 db pull이 한참동안 진행되는 문제가 있었습니다.

상황은 다음과 같은 상황에서 발생했습니다.

npx prisma db pull
Prisma schema loaded from prisma/schema.prisma
Environment variables loaded from .env
Datasource "db": PostgreSQL database 데이터베이스 주소
 
 Introspecting based on datasource defined in prisma/schema.prisma

위와 같이 Introspecting based on datasource defined in prisma/schema.prisma에서 멈춰있는 상황이었습니다.

해결방법

해결방법은 간단합니다.

supabase에서는 directUrl을 제공해 줍니다.

기본 prisma init 설정에는 directUrl 생략되어 있습니다.

prisma/schema.prisma 파일을 열어서 다음과 같이 수정해 줍니다.

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
  // directUrl 추가
  directUrl = env("DATABASE_URL")
}

위와 같이 directUrl을 추가해 주면 됩니다.

환경 변수에는 반드시 supabase에서 제공해주는 DATABASE_URL이 있어야 합니다.

이후 다시 npx prisma db pull을 실행하면 정상적으로 pull이 됩니다.

이렇게 supabase를 사용할 때 발생하는 prisma와의 연결 문제를 해결할 수 있습니다.

db pull 뿐만 아니라 db push도 동일한 문제가 발생할 수 있으니 참고하시기 바랍니다.



관련 태그