planetscale -> superbase 마이그레이션

최정환·2024년 3월 10일
0

PlanetScale에서 Superbase로

serverless db를 제공해주는 saas

깃과 같이 브런치를 사용하여 분기 처리로 개발 할 수 있었고 대시보드로 bandwidth, table 같은 요소들을 직관적인 UI로 표현해줍니다.

하지만 최근 무료 플랜을 없앴고 유료 전환 때문에 저장공간은 작지만 무료인 db 서버 superbase를 알게 되었고 마이그레이션 하기로 했습니다.

현재 개발 환경

프레임 워크 : Next.js
ORM : Prisma
DB : Mysql


Superbase 세팅

1. Superbase project 시작

회원 가입 후 프로젝트 생성 시 DB까지 생성

2. DataBase connect

DataBase 페이지 이동 후 connect 버튼을 통해 ORM 연결할 수 있는 URI를 프로젝트의 .env 파일에 설정

버튼을 누르면 연결하는 세팅에 대한 방법이 자세히 나옴

3. Prisma shema push

먼저 schema.prisma 변경 provider도 mysql에서 postgresql로 바꿈

prisma - superbase 연동 공식 문서

directUrl은 db로 바로 연결할 수 있는 속성이고 만약 prisma studio를 사용한다면 추가

prisma에서 설정한 스키마에 postgresql 문법으로 변경해 준 후 prisma cli를 사용해 superbase DB에 스키마에 맞는 테이블을 생성 -> db push


DBever로 MySql -> Postgresql

1. pscale을 통해 내 DB에 접속함

pscale을 통해 접속한다면 로컬에 랜덤한 포트로 서버가 연결됨

2. DBever

설치 링크

먼저 로컬에 켜둔 psclae(Mysql)을 연결 그리고 superbase에 있는 uri를 통해 postgres로 연결

데이터가 있는 mysql에 들어가 테이블에 있는 데이터들을 내보냄

테이블로 내보내기 다음으로 넘어가면 Choose로 데이터를 옮기려고 하는 superbase로 연동한 postgres를 선택

Databases의 내부로 들어가 public을 선택 후 계속 넘어가면 데이터 내보내기 완료

들어온 데이터 확인


마무리

수정된 .env을 사용해 앱 재배포하면 완료

superbase는 DB와 관련된 서비스로 테이블, SQL 에디터를 제공해 직관적인 UI를 통해 DB를 관리하고 index, role, trigger ... 다양한 기능들이 눈에 띄게 바로 보여 쉽게 사용할 수 있는 RDBMS 자체로 보입니다.

뿐만 아니라 엣지 함수, 객체 저장, 인증 등 여러 서비스를 가지고 있기 때문에 serverless 서비스를 사용할때 확장성이 좋을것 같습니다.

1개의 댓글

comment-user-thumbnail
2024년 3월 16일

마침 플래닛스케일 hobby plan 지원 종료로 대체재를 찾고 있었는데 많은 도움이 됐습니다. 감사합니다.

답글 달기