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)。 1 回の呼び出しは既定で 150 秒まで。Supabase と同じです。

6. サイトをデプロイする

git にプッシュするか、デプロイのツールを使います(blackwall://deploy)。ドメイン、リダイレクト、プレビュー保護は blackwall://domains と blackwall://previews にあります。 @vercel/analytics と @vercel/speed-insights を使うアプリは、コードを変えずに集計されます。track のカスタムイベントはまだ保存しません(blackwall://edge)。

同じではないところ

  • 直接接続(psql)では名前は置き換わりません。app_<ref> の名前を使ってください。
  • データ API は、他のスキーマを公開するまで public だけに答えます。
  • ここに書いていないことは約束しません。使う前に該当するページを確認してください。