アプリのデータを自分の 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 に移すには?”-
Supabase でプロジェクトを開き、Connect をクリックします。Transaction pooler の接続文字列をコピーし、
[YOUR-PASSWORD]の部分をデータベースのパスワードに置き換えます。 -
MonstarX でプロジェクトを開き、上部のバーで バックエンド をクリックし、続けて クラウド をクリックします。
-
コネクタ で Supabase の横の 接続する をクリックします。このアプリのデータの保存先 で Supabase(Postgres) を選んでも、同じフォームが開きます。
-
接続文字列を 接続文字列 に貼り付けます。ほかの欄は任意です。
- プロジェクト URL と anon キー — アプリで Supabase 自身の API やストレージも使う場合だけ。
- service_role キー — 秘密にしておいてください。空欄のままで構いません。サインインやファイルを Supabase に移すためのものですが、移行ではまだそれを行わないためです。
-
Supabase を接続 をクリックします。MonstarX は何かを保存する前に、そこにテーブルを作れるかどうかを確認します。
-
チャットに このアプリのデータを Supabase に移行 というカードが表示され、見つかった内容が示されます。たとえば「6個のテーブル · 214行 · 3件のアカウント · 指示があるまで何も変わりません」。そのまま残るものも示されます。
-
アプリを移行する をクリックします(後で決めるなら 今はしない)。
カードには、各ステップの進み具合が表示されます。
- 接続を確認
- アプリのデータを読み込み
- Supabase にテーブルを作成
- 行をコピー
- すべて届いたか確認
- アプリの接続先を Supabase に切り替え
- アプリのコードを書き換え
完了すると、カードに アプリは 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 プロジェクトのテーブルはそのまま残り、何も削除されません。
知っておくと便利なこと
Section titled “知っておくと便利なこと”- アプリが使っている間は、Supabase の接続を解除できません。 アプリがデータベースを失ってしまうため、MonstarX が拒否します。先に元に戻してください。
- 新しいキーは同じデータを指している必要があります。 接続文字列を更新する場合は、アプリのテーブルがあるデータベースに届くものにしてください。
- Supabase と Railway は、どちらか一方だけです。 一方からもう一方に移るには、先に MonstarX のデータベースに戻してください。詳しくは Railway をご覧ください。
- エクスポートしたアプリや公開中のアプリは直接接続します。 プレビューでも公開中でも、アプリ自身が Supabase とやりとりするので、エクスポートしたコピーも単独で動きます。
よくある質問
Section titled “よくある質問”ユーザーはもう一度登録する必要がありますか?
ありません。アカウントとパスワードはほかのデータと一緒に Supabase に移り、そのまま使えます。
移行後、データは両方の場所にありますか?
いいえ。アプリが読み書きするのは Supabase だけです。元に戻す場合に備えて MonstarX は古いコピーに手を付けずに残しますが、アプリはもうそれを使いません。
どの接続文字列を使えばよいですか?
Supabase で Connect をクリックし、Transaction pooler の文字列をコピーして、[YOUR-PASSWORD] をデータベースのパスワードに置き換えたものを使います。
すでにデータがある Supabase プロジェクトを使えますか?
空のプロジェクトを使ってください。アプリと同じ名前のテーブルに行が入っているプロジェクトは MonstarX が受け付けないので、あなたのデータが上書きされることはありません。
移行に費用はかかりますか?
データのコピーには費用はかかりません。その後のコードの書き換えは通常のビルドのリクエストで、Supabase の料金は Supabase の料金体系であなたの Supabase アカウントに請求されます。