One Server

문서

DB 브랜치

git 브랜치마다 미리보기 데이터베이스: 만들기, 미리보기 배포에 연결, 병합, 초기화, 삭제, 요금.

DB 브랜치 (미리보기 데이터베이스)

브랜치는 프로젝트의 스키마로 만든 데이터베이스예요. git 브랜치마다 하나씩 두면 그 브랜치의 미리보기 배포가 운영 데이터베이스가 아니라 브랜치를 써요. Pro 요금제부터 프로젝트마다 3개까지 둘 수 있어요(엔터프라이즈 10개).

  • 만들 때 프로젝트의 마이그레이션 기록(apply_migrations, oneend db push로 적용한 것)을 순서대로 다시 실행하고,
  • 브랜치는 ref가 따로 있는 프로젝트예요. list_branches의 ref를 run_sql, get_project_keys,
  • 브랜치의 git 브랜치로 미리보기를 배포하면 배포 환경 변수에 브랜치의 SUPABASE_URL, NEXT_PUBLIC_SUPABASE_URL,
  • merge_branch는 브랜치에만 있는 마이그레이션을 운영에 적용해요. 그래서 브랜치에서 스키마를 바꿀 때는
  • git 브랜치를 지우거나 풀 리퀘스트를 닫으면 브랜치도 지워져요. 마지막 배포 뒤 보존 기간(기본 14일)이 지나도
create_branch { ref, git_branch: "feature/login" }
list_branches { ref }
apply_migrations { ref: "<branch ref>", migrations: [{ version: "20261005000000", name: "add_profiles", sql: "..." }] }
merge_branch { ref, name: "feature-login" }
reset_branch { ref, name: "feature-login", confirm: "feature-login" }
delete_branch { ref, name: "feature-login", confirm: "feature-login" }
set_branching { ref, automatic: true, seed_sql: "insert into plans (code) values ('free');", lifetime_days: 14 }

set_branching의 automatic을 켜면 미리보기로 배포되는 git 브랜치마다 브랜치가 저절로 만들어져요.

요금: 브랜치의 데이터베이스 용량은 DB 저장 용량으로, 브랜치가 있는 동안은 시간당 0.25GB의 서버 메모리 (runtime_gb_hour)로 프로젝트의 조직에 청구돼요. 밤마다 하는 백업은 하지 않아요.

HTTP로는 GET /branches, POST /branches, POST /branches/<이름>/merge, POST /branches/<이름>/reset, DELETE /branches/<이름>, PUT /branching이에요.