이전

Supabase에서 옮기기

Supabase는 백엔드 플랫폼이고 CapyDB는 그 아래의 데이터베이스입니다. 이 페이지는 여러분이 정말로 원하는 쪽이 어느 것인지에 대해 솔직합니다.

01

먼저 이것부터

데이터베이스뿐 아니라 인증, 스토리지, 엣지 함수, 실시간까지 Supabase를 쓰고 있다면 CapyDB로 옮기는 일은 하나가 아니라 네 개의 제품을 대체하는 일입니다. 옳은 선택일 수 있고 — 앱이 그 결합을 벗어났을 때 보통 그렇습니다 — 다만 오후 한나절이 아니라 프로젝트입니다.

Supabase를 주로 호스팅된 Postgres로 쓰고 나머지는 부수적이라면, 이건 간단한 이전이고 이 페이지의 나머지는 여러분을 위한 것입니다.

02

그대로 넘어오는 것

  • -스키마, 데이터, 인덱스, 제약 조건, 함수, 트리거
  • -확장. 셀 단위로 켜는 카탈로그를 통해
  • -마이그레이션. 어떤 도구로 만들었든
  • -모든 클라이언트 라이브러리. 연결 문자열이 평범한 postgres:// URL이기 때문입니다

03

행 수준 보안

Supabase의 행 수준 보안 정책은 그쪽의 auth 스키마와 JWT 클레임 헬퍼를 전제로 작성되어 있습니다. 그것들은 Supabase 밖에 존재하지 않으므로, 단순 덤프·복원은 없는 함수를 참조하는 정책만 남깁니다.

CLI가 변환합니다. 변환기는 오픈 소스이고, 정책을 순수 PostgreSQL 세션 설정 기준으로 다시 쓰며, 번역하지 못한 것은 조용히 느슨한 결과를 내놓는 대신 보고합니다.

capydb migrate rls ./supabase --out capyrls

04

인증, 스토리지, 함수

  • -인증: 전용 아이덴티티 제공자로 옮기고, 변환된 정책이 읽는 세션 설정에 같은 클레임을 넣으세요
  • -스토리지: 오브젝트 스토리지와 서명된 URL. 코드모드가 일반적인 버킷 의미를 매핑하고 나머지는 보고합니다
  • -엣지 함수: 배포 플랫폼이 이미 돌리는 것. 그냥 서버리스 함수입니다
  • -실시간: PostgreSQL 논리 복제와 LISTEN/NOTIFY 모두 셀에서 쓸 수 있습니다
  • -데이터베이스 자체: 이 부분이 진짜로 그대로 옮기는 영역입니다

05

데이터 옮기기

Supabase 연결 문자열에서 바로 가져오세요. 가져오기 도구는 함께 가면 안 되는 플랫폼 스키마를 알고 걸러내므로, 남는 것은 여러분의 데이터이지 남의 컨트롤 플레인 사본이 아닙니다.

capydb import \
  --project my-app \
  --source-url "$SUPABASE_DATABASE_URL" \
  --follow

06

전환

  • -팔로우로 가져오고, 원본이 살아 있는 동안 테스트 스위트를 셀에 대해 돌립니다
  • -변환된 정책을 적용하고 슈퍼유저 연결이 아니라 실제 세션으로 검증합니다
  • -capydb doctor로 아직 옛 프로젝트를 가리키는 환경 변수를 확인합니다
  • -환경별로 연결 문자열을 바꾸고 로그를 지켜본 뒤 팔로우를 멈춥니다
  • -원본은 읽기 전용으로 일주일 남겨 두세요. 비용은 적고 실제로 사람을 구해 왔습니다

07

먼저 물어보세요

프로덕션 전환 전에 알려주세요. 계획을 검토하고, 그 시간대에 대기하며, 복구 경로를 준비해 둡니다.