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 だけに答えます。
- ここに書いていないことは約束しません。使う前に該当するページを確認してください。