01
まずこれを
データベースだけでなく認証・ストレージ・エッジ関数・リアルタイムまで Supabase を使っているなら、CapyDB への移行は 1 つではなく 4 つの製品を置き換えることになります。それが正しい判断のこともあります(多くは、アプリがその結合を卒業したときです)が、午後で終わる作業ではなくプロジェクトです。
主にホスティングされた Postgres として Supabase を使っていて、残りは付随的だというなら、これは素直な移行です。以降はまさにそのためのページです。
移行
Supabase はバックエンドのプラットフォーム、CapyDB はその下にあるデータベースです。このページは、本当に必要なのがどちらなのかについて率直です。
01
データベースだけでなく認証・ストレージ・エッジ関数・リアルタイムまで Supabase を使っているなら、CapyDB への移行は 1 つではなく 4 つの製品を置き換えることになります。それが正しい判断のこともあります(多くは、アプリがその結合を卒業したときです)が、午後で終わる作業ではなくプロジェクトです。
主にホスティングされた Postgres として Supabase を使っていて、残りは付随的だというなら、これは素直な移行です。以降はまさにそのためのページです。
02
03
Supabase の行レベルセキュリティポリシーは、同社の auth スキーマと JWT クレーム用ヘルパーに依存して書かれています。それらは Supabase の外に存在しないため、単純なダンプとリストアでは、ない関数を参照するポリシーだけが残ります。
CLI が変換します。コンバーターはオープンソースで、ポリシーを素の PostgreSQL のセッション設定に対して書き直し、翻訳できなかったものは黙って緩い出力を出すのではなく報告します。
capydb migrate rls ./supabase --out capyrls04
05
Supabase の接続文字列から直接インポートします。インポーターは持っていくべきでないプラットフォームのスキーマを把握して除外するので、手元に残るのは自分のデータで、他人のコントロールプレーンの複製ではありません。
capydb import \
--project my-app \
--source-url "$SUPABASE_DATABASE_URL" \
--follow06
07
本番の切り替え前にお知らせください。計画を確認し、その時間帯に待機し、復旧経路を用意しておきます。