アプリのデータベース
要点MonstarX が作るアプリには、最初の作成時に専用のデータベースが用意されます。「バックエンド → データベース」で、すべてのテーブル、行、マイグレーションを確認し、読み取り専用の SQL を実行できます。レコードの追加や変更は「管理」タブかチャットで行います。プレビューと公開中のアプリは同じデータを使い、バージョンを復元してもデータは変わりません。
データベースは、アプリが情報をしまっておく場所です。コーヒーショップのメニュー、お客さんの注文、投稿されたレシピ、サインインに使うアカウントなどがここに入ります。MonstarX で作るアプリには、最初の作成時に専用のデータベースが作られます。ほかのアプリからは読めません。
設計する必要もありません。何かを覚えておく必要がある機能を頼むと、MonstarX が必要なテーブルを追加し、それを読み書きするコードも書きます。
アプリのデータはどこで見られますか?
Section titled “アプリのデータはどこで見られますか?”-
プロジェクトを開き、上部のバーで バックエンド をクリックします。
-
データベース をクリックします。左側に テーブル が行数とともに表示されます。
-
テーブルをクリックすると、その行が表示されます。最初の 50行まで表示されます。
一覧の上の欄には、データベースの場所と名前が表示されます。テーブルの下の マイグレーション には、これまでにデータベースを形づくってきた変更がすべて並びます(詳しくは後述)。アプリが使われた後に行数を数え直すには、テーブル の横にある更新の矢印をクリックします。
最初からあるテーブルは?
Section titled “最初からあるテーブルは?”どのアプリにも、何も頼まないうちから user、session、account、verification の4つのテーブルがあります。アプリに登録した人とそのサインインの情報が入っています。詳しくは ユーザーアカウント をご覧ください。それ以外のテーブルは、menu_items や recipes のように、MonstarX がアプリのために作ったものです。
自分で SQL を実行できますか?
Section titled “自分で SQL を実行できますか?”はい、データを調べるためなら実行できます。SQL はデータベースとやりとりするための言語です。上部の欄にクエリを入力して 実行 をクリックすると、結果が下に表で表示されます。
例:
SELECT title, country_code, tags FROM recipes ORDER BY created_at DESC LIMIT 5知っておくと便利なこと:
- この欄は読み取り専用です。一度に1つの文だけを実行でき、使えるのは読み取る文(
SELECT、WITH、PRAGMA、EXPLAIN)だけです。INSERT、UPDATE、DELETE、DROPのようにデータを変える文は拒否されるので、うっかりアプリを壊す心配はありません。 - 1つのクエリで表示されるのは 200行までです。
PRAGMA table_info(recipes)でテーブルの列の一覧を見られます。- データが Supabase や Railway の Postgres にあるアプリでは、
SELECT、WITH、TABLE、EXPLAINを使えます。
レコードを追加・変更・削除するには?
Section titled “レコードを追加・変更・削除するには?”簡単な方法が2つあり、どちらも SQL は不要です。
- 「管理」タブ。 どのアプリにも、プレビュー の隣に管理パネルがあります。テーブルがわかりやすい言葉のフォームで表示され、レコードの追加、編集、削除ができます。元に戻す も使えます。変更はすぐにアプリに反映され、クレジットはかかりません。詳しくは アプリの管理パネル をご覧ください。
- チャット。 「コーヒーメニューに 4.50 ドルのフラットホワイトを追加して」「テスト用の注文を削除して」のように伝えます。チャット モードなら、MonstarX は何も変更せずにデータを見て質問に答えることもできます。詳しくは ビルド・プラン・チャット をご覧ください。
作成のとき、MonstarX はデータベースに何をしますか?
Section titled “作成のとき、MonstarX はデータベースに何をしますか?”情報を保存する場所が必要な機能を作るとき、MonstarX はマイグレーションを書きます。マイグレーションとは、テーブルを作ったり変更したりするための番号付きの手順で、0001_create_menu_and_orders のような名前が付きます。MonstarX はこれをデータベースに適用し、コードと一緒に保存するので、テーブルとコードは常に一致します。マイグレーションの中には、見本のメニューのような初期データを入れるものもあります(上の例の 0002_seed_recipes)。
バックエンドの マイグレーション 一覧には、実行されたものが順にすべて並びます。0000_monstarx_auth は MonstarX 自身のもので、アカウント用のテーブルを作ります。
アプリを変更・復元しても、データは残りますか?
Section titled “アプリを変更・復元しても、データは残りますか?”はい。データはコードとは別の場所にあります。
- 新しい作成でも、すべての行は残ります。列を追加するなどテーブルを変更するときは、既存のデータを残すマイグレーションで行います。
- バージョンの復元で戻るのは、以前のコードだけです。アプリのデータは変わりません。詳しくは バージョン をご覧ください。
- プレビューと公開中のアプリは同じデータベースを使います。 プレビューでテストしたときの注文は公開中のアプリにも入り、その逆も同じです。テスト中に追加した見本の行がお客さんにも見えるのはこのためです。
データを自分のデータベースに置けますか?
Section titled “データを自分のデータベースに置けますか?”はい。バックエンドクラウド の このアプリのデータの保存先 で選べます。
- MonstarX データベース — 最初の設定です。準備は何もいりません。
- Supabase(Postgres) — 自分の Supabase プロジェクト。Postgres は多くのチームが使っている人気のデータベースです。詳しくは Supabase をご覧ください。
- Railway(Postgres) — 自分の Railway のデータベース。詳しくは Railway をご覧ください。
- Firestore(ご自身の Firebase プロジェクト) — アプリのレコードを Firebase に保存します。詳しくは Firebase をご覧ください。
MonstarX がテーブル、行、アカウントをコピーし、新しい場所を使うようにアプリを書き換えます。後から 元に戻す で戻すこともできます。データが Firestore にある場合、データベース にはテーブルの代わりに Firestore のコレクションが表示されます(読み取り専用で、書き込みはアプリが行います)。
よくある質問
Section titled “よくある質問”「データベース」セクションから行を直接編集できますか?
できません。「データベース」セクションは読み取り専用です。レコードの編集は、元に戻すこともできる表計算ソフトのような 管理 タブで行うか、チャットで MonstarX に頼んでください。詳しくは アプリの管理パネル をご覧ください。
テストの注文が公開中のアプリに出てきたのはなぜですか?
プレビューと公開中のアプリは1つのデータベースを共有しているため、テスト中に追加したものも本物のデータになります。テストが終わったら「管理」タブでテスト用の行を削除してください。
古いバージョンを復元すると、データは消えますか?
消えません。バージョンの復元で置き換わるのはコードだけです。データベースの行はすべてそのまま残ります。
データをダウンロードできますか?
SELECT クエリで任意のテーブルを読んで結果をコピーするか、データを自分の Supabase や Railway の Postgres データベースに移せば、すべてに自由にアクセスできます。
どんな種類のデータベースですか?
アプリごとに用意される、専用の SQL データベースです。SQL はデータベースの標準的な言語なので、どの開発者でも扱えます。Postgres を使いたい場合は、データを Supabase か Railway に移してください。
アプリがインポートされたものだというメッセージが出るのはなぜですか?
インポートしたアプリには、MonstarX はデータベースを作りません。データは、そのアプリのコードが保存している場所にあります。アプリが読み取るキーは シークレット にあります。