コンテンツにスキップ

アプリのデータを自分の Supabase に置く

要点「バックエンド → クラウド」で、プロジェクトの接続文字列を使って Supabase を接続します。MonstarX がテーブル、行、アカウントの数を確認し、「アプリを移行する」を押すと、すべてを Supabase にコピーし、全行が届いたかを確認してから、アプリの接続先を切り替えてコードを書き換えます。以後、データは Supabase だけに置かれます。「元に戻す」で MonstarX に戻せます。

MonstarX のアプリにはどれも、予約、注文、登録といった情報をしまっておく専用のデータベースが付いています。その情報を自分の Supabase プロジェクト(人気のホスティング型 Postgres データベース)に置きたい場合は、MonstarX がデータを移し、それを使うようにアプリを変更します。

アプリがデータを置く場所は一度に1か所だけです。MonstarX のデータベースか、あなたのデータベースのどちらかで、両方に置かれることはありません。つまり、Supabase を接続するとデータは移行されるのであって、コピーが増えるわけではありません。

自分の Supabase を使うのはどんなときですか?

Section titled “自分の Supabase を使うのはどんなときですか?”

次のような場合に選びましょう。

  • 会社ですでに Supabase を使っている、または顧客データは自社のアカウントに置くという決まりがある。
  • Supabase のダッシュボード、SQL エディタ、レポートツールでデータを直接開きたい。
  • データベースのバックアップやアクセス権を自分で管理したい。

どれにも当てはまらなければ、MonstarX のデータベースのほうが簡単です。準備も、別途の支払いもいりません。詳しくは アプリのデータベース をご覧ください。

  • 新しい空の Supabase プロジェクトを作ります。テーブルは MonstarX が作ります。同じ名前のテーブルに行が入っているプロジェクトは受け付けません。
  • データベースのパスワードを手元に用意します。Supabase プロジェクトを作ったときに設定したものです。
  • アプリのデータが Firestore にある場合は(Firebase 参照)、先に MonstarX のデータベースに戻してください。

アプリのデータを Supabase に移すには?

Section titled “アプリのデータを Supabase に移すには?”
  1. Supabase でプロジェクトを開き、Connect をクリックします。Transaction pooler の接続文字列をコピーし、[YOUR-PASSWORD] の部分をデータベースのパスワードに置き換えます。

  2. MonstarX でプロジェクトを開き、上部のバーで バックエンド をクリックし、続けて クラウド をクリックします。

  3. コネクタ で Supabase の横の 接続する をクリックします。このアプリのデータの保存先 で Supabase(Postgres) を選んでも、同じフォームが開きます。

  4. 接続文字列を 接続文字列 に貼り付けます。ほかの欄は任意です。

    • プロジェクト URL と anon キー — アプリで Supabase 自身の API やストレージも使う場合だけ。
    • service_role キー — 秘密にしておいてください。空欄のままで構いません。サインインやファイルを Supabase に移すためのものですが、移行ではまだそれを行わないためです。
  5. Supabase を接続 をクリックします。MonstarX は何かを保存する前に、そこにテーブルを作れるかどうかを確認します。

  6. チャットに このアプリのデータを Supabase に移行 というカードが表示され、見つかった内容が示されます。たとえば「6個のテーブル · 214行 · 3件のアカウント · 指示があるまで何も変わりません」。そのまま残るものも示されます。

  7. アプリを移行する をクリックします(後で決めるなら 今はしない)。

カードには、各ステップの進み具合が表示されます。

  1. 接続を確認
  2. アプリのデータを読み込み
  3. Supabase にテーブルを作成
  4. 行をコピー
  5. すべて届いたか確認
  6. アプリの接続先を Supabase に切り替え
  7. アプリのコードを書き換え

完了すると、カードに アプリは Supabase で動くようになりました と表示され、バックエンドクラウド の データベース のカードに Supabase で稼働 と表示されます。

何が移り、何が MonstarX に残りますか?

Section titled “何が移り、何が MonstarX に残りますか?”
どうなるか
テーブルと行テーブル同士のつながり、インデックス、ID の連番も含めて Supabase にコピーされます。
アカウントパスワードも含めてデータと一緒に移り、そのまま使えます。サインインのしくみ自体は、今のアプリのままです。
アップロードされたファイルMonstarX のファイルストレージに残ります。ファイルへのリンクはすべてそのまま使えます。
アプリのコードMonstarX が自分で送るビルドのリクエストで、データベースとやりとりする部分を Postgres 用に書き換えます。
MonstarX 側の古いコピー元に戻せるように、手を付けずに残します。

サインインを Supabase Auth に、ファイルを Supabase Storage に移すことは、まだできません。

移行中、データは安全ですか?

Section titled “移行中、データは安全ですか?”
  • すべての行が届くまで、何も切り替わりません。 MonstarX はアプリを切り替える前に、両方の行数を数えます。移行中に誰かがアプリを使ったなどで数が合わなければ、移行は止まり、アプリは元のままです。
  • 失敗・停止した移行は後片付けされます。 削除するのは移行で作ったテーブルだけで、その旨がカードに表示されます。自分で止めるには、カードの 停止 をクリックします。
  • プロジェクトは待機します。 移行中は、作成中と同じように、新しいリクエストはキューで待ちます。
  • 行レベルセキュリティがオンになります。 MonstarX が Supabase に作るすべてのテーブルで行レベルセキュリティがオンになるため、Supabase の公開 API からデータを読んだり変えたりすることは誰にもできません。アプリは自分専用の非公開の接続でデータにアクセスします。

MonstarX のデータベースに戻せますか?

Section titled “MonstarX のデータベースに戻せますか?”

はい。バックエンドクラウド を開き、データベース のカードで 元に戻す をクリックして確認します。MonstarX がすべてを自分のデータベースにコピーし直し、アプリが最初に使っていた列の型に戻して、コードをもう一度書き換えます。Supabase プロジェクトのテーブルはそのまま残り、何も削除されません。

  • アプリが使っている間は、Supabase の接続を解除できません。 アプリがデータベースを失ってしまうため、MonstarX が拒否します。先に元に戻してください。
  • 新しいキーは同じデータを指している必要があります。 接続文字列を更新する場合は、アプリのテーブルがあるデータベースに届くものにしてください。
  • Supabase と Railway は、どちらか一方だけです。 一方からもう一方に移るには、先に MonstarX のデータベースに戻してください。詳しくは Railway をご覧ください。
  • エクスポートしたアプリや公開中のアプリは直接接続します。 プレビューでも公開中でも、アプリ自身が Supabase とやりとりするので、エクスポートしたコピーも単独で動きます。
ユーザーはもう一度登録する必要がありますか?

ありません。アカウントとパスワードはほかのデータと一緒に Supabase に移り、そのまま使えます。

移行後、データは両方の場所にありますか?

いいえ。アプリが読み書きするのは Supabase だけです。元に戻す場合に備えて MonstarX は古いコピーに手を付けずに残しますが、アプリはもうそれを使いません。

どの接続文字列を使えばよいですか?

Supabase で Connect をクリックし、Transaction pooler の文字列をコピーして、[YOUR-PASSWORD] をデータベースのパスワードに置き換えたものを使います。

すでにデータがある Supabase プロジェクトを使えますか?

空のプロジェクトを使ってください。アプリと同じ名前のテーブルに行が入っているプロジェクトは MonstarX が受け付けないので、あなたのデータが上書きされることはありません。

移行に費用はかかりますか?

データのコピーには費用はかかりません。その後のコードの書き換えは通常のビルドのリクエストで、Supabase の料金は Supabase の料金体系であなたの Supabase アカウントに請求されます。