One Server

문서

Supabase·Vercel에서 옮기기

Supabase나 Vercel로 만든 앱을 옮기는 순서: 데이터베이스, supabase-js, 로그인, 함수, 배포. 그대로 도는 것과 확인할 것.

Supabase·Vercel에서 옮기기

Supabase나 Vercel로 만든 앱은 코드를 거의 고치지 않고 옮겨요. 단계마다 그대로 도는 것과 확인할 것을 적었어요. 순서대로 하세요.

1. 프로젝트를 만들고 폴더를 연결해요

create_project(리전은 한 번만 고르고, blackwall://start 참고). 앱 폴더에서 oneend login --token <토큰>, oneend link --project <ref> (blackwall://cli).

2. 데이터베이스를 옮겨요

oneend db pull이 현재 스키마를 첫 마이그레이션으로 만들고, 버전 붙은 SQL은 oneend db push로 적용해요 (blackwall://migrations). Supabase용 SQL은 그대로 돌아요. public.·auth.·storage.와 anon·authenticated·service_role이 바뀌고, 응답의 translated에 바뀐 것이 적혀요 (blackwall://access-rules). 커스텀 스키마, pg_cron, pg_net, Vault도 돼요 (blackwall://database-features). 동기식 http 확장은 없어요. net.http_get이나 함수를 쓰세요. 옮긴 뒤 확인: list_policies로 이 프로젝트의 실제 역할 이름을 보세요. 표가 비어 보이면 거의 항상 접근 규칙 때문이에요 (blackwall://access-rules).

3. supabase-js는 그대로 써요

주소를 https://<ref>.<zone>, 키를 공개 키로 바꿔요. SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY(와 NEXT_PUBLIC_ 형태)는 빌드와 함수에 이미 들어 있어서 createClient(Deno.env.get('SUPABASE_URL')!, ...)를 고치지 않아도 돼요 (blackwall://env). generate_typescript_types가 Database 타입을 만들어요 (blackwall://migrations).

4. 로그인과 파일

제공자, 리디렉트 주소, custom:<이름> OAuth 제공자는 blackwall://auth, 버킷·서명 URL·S3 호환 접근은 blackwall://storage에 있어요.

5. 함수

Supabase용 Deno 함수는 그대로 돌아요. Deno.serve, npm: import, _shared 폴더, 부른 사람의 Authorization 헤더도 돼요. 폴더는 oneend functions deploy <이름> <폴더>로 배포해요 (blackwall://functions). 한 번의 호출은 기본 150초까지 걸려요. Supabase와 같아요.

6. 사이트를 배포해요

git에 푸시하거나 배포 도구를 써요 (blackwall://deploy). 도메인·리디렉트·프리뷰 보호는 blackwall://domains, blackwall://previews에 있어요. @vercel/analytics와 @vercel/speed-insights를 쓰는 앱은 코드 변경 없이 집계돼요. track 사용자 이벤트는 아직 저장하지 않아요 (blackwall://edge).

같지 않은 것

  • 직접 연결(psql)은 이름이 바뀌지 않아요. app_<ref> 이름을 쓰세요.
  • 데이터 API는 다른 스키마를 노출하기 전까지 public만 답해요.
  • 여기 없는 것은 약속하지 않아요. 쓰기 전에 그 문서를 확인하세요.