ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Prisma를 사용한 Next.js Vercel 배포 오류
    Back-end/Debug 2023. 4. 14. 23:30
    728x90

     


    Next.js에서 prisma를 사용하여 supabse와 연결하는 개인 작업을 하고 있습니다. 기존에는 Next.js를 AWS Amplify를 사용하여 배포하고 있었습니다.

    https://jglee96.tistory.com/18

     

    AWS Amplify 사용 리뷰

    프론트엔드를 로컬에서 공부하고 작업할 때 잊어버리는 부분이 있습니다. 내가 만든 애플리케이션을 사용자가 보기위해서는 결국 "배포"라는 과정이 있어야합니다. 정적 웹페이지라면 그나마

    jglee96.tistory.com

    그런데 AWS의 무서운 점이 사용량을 넘어가면 자동으로 결제가 된다는 것입니다. 그냥 개인 프로젝트이기 때문에 프리 티어 사용량을 넘어가면 그냥 연결이 끊기는 것이 더 좋습니다.

     

    그래서 고민을 하다가 Vercel로 넘어왔습니다.

    AWS Amplify를 쓰다가 deploy open source를 사용하여 직접 AWS에 배포할 목적으로 Vercel을 사용하지 않고 있었습니다. Next.js 13 버전에 대한 deploy open source들의 개발이 아직 부족한거 같아 일단은 Vercel로 넘어왔습니다.

    Vercel에서는 프리 티어를 선택하면 그 용량 안에서만 동작하고, 저의 결제 정보를 입력하지 않았기 때문에 자동결제되지 않습니다.

     

    그렇게 Vercel로 배포를 하다가 deploy Fail이 발생했습니다.

    분명 schema를 맞춰서 개발을 했는데 type이 맞지 않다는 오류가 떴습니다. 첫 배포는 성공했는데 다음 배포에서 실패했습니다. 그리고 실패 배포 작업에서 재배포를 하면 배포가 성공하였습니다.

     

    원인은 Vercel의 캐시 때문이었습니다.

    Vercel에서는 배포시에 node_modules 캐시를 생성하여 다음 배포시에 사용합니다. schema를 수정하고 prisma generate를 하면 @prisma/client에 type이 생성됩니다. 따라서 node_modules 캐시에 의해 이전 schema가 수정된 배포에 사용되면서 오류가 발생한 것이였습니다.

     

    postinstall을 추가해주었습니다.

    package.json에 postinstall로 prisma generate 명령어를 추가해주어 문제 해결하였습니다.

    728x90

    'Back-end > Debug' 카테고리의 다른 글

    Prisma Client 연결 오류  (0) 2023.04.14

    댓글

Designed by Tistory.