Crescendo Lab ドキュメント デプロイ
日本語
無料で始める

プロジェクトに PostgreSQL・MySQL データベースを追加する

専用の PostgreSQL または MySQL データベースを作成してプロジェクトに接続し、プロジェクト自身のアカウントがテーブルを所有するようにします。Claude Code や Codex から MCP でテーブルも作成できます。

最終更新

いちばん早い方法:デプロイに作成させる#

コードが DATABASE_URL、POSTGRES_URL、MYSQL_URL、または DB_HOST と DB_PASSWORD などのデータベース接続変数を読み、プロジェクトにまだその値がない場合、AI ツールからのデプロイやコンソールでのアップロードで、ビルド開始前にサイズ S のデータベースが作成され、接続されます。通常は PostgreSQL で、コードが MYSQL_ で始まる名前を読む場合は MySQL です。AI ツールにデプロイを頼むだけで済みます。

prompt
このフォルダを Agent Lab にデプロイして。DATABASE_URL で PostgreSQL を使います。

作成される場合とされない場合、待っている間に AI ツールが受け取る内容は コードが必要とするデータベースとキャッシュ をご覧ください。このページの残りは、データベースを自分で作成・管理する方法です。

提供されるもの#

データベースはそれぞれ専用の Google Cloud SQL インスタンスで、独自の公開アドレスを持ちます。他の組織と共有されるものはありません。

項目選択肢
種類PostgreSQL 18(既定)、17、16。コンソールに表示される場合は MySQL 8.4、9.7。作成後は変更できません。
サイズS:共有コア、メモリ 0.6 GB。開発とテスト専用で SLA はありません。M:1 vCPU、3.75 GB。L:2 vCPU、8 GB。XL:4 vCPU、16 GB。
リージョン台湾(asia-east1)、日本(asia-northeast1)、米国(us-central1)、ヨーロッパ(europe-west1)。作成後は変更できません。
ストレージ10 GB 以上。増やすこと(自動で増やす設定も可)はできますが、減らすことはできません。
バックアップ自動で取得されます。直近 7 日間のポイントインタイムリカバリは Business のオプションです(後述)。

1 つのインスタンスに複数のデータベースを置けます。たとえばプロジェクトごとに 1 つです。データベースはそれぞれ 1 つの環境に属し、プロジェクトは同じ環境のデータベースにだけ接続できます。

プランごとの内容#

プランデータベース数サイズポイントインタイムリカバリ
Free1Sなし
Pro2S、Mなし
Team10S–XLなし
Business契約によるS–XLオプション
  • Free:データベースは課金されず、無料枠に含まれます。先にカードの登録が必要です(請求はされません)。7 日間使われないと自動で停止するので、データベースのページから起動してください。
  • 有料プラン:作成した時点で課金が始まります。停止中のデータベースはストレージ分だけ課金されます。料金は料金ページをご覧ください。
  • 課金が発生するため、作成できるのは組織のオーナーと管理者だけです。

データベースを作成する#

  1. データベース を開き、データベースを作成 を選びます。
  2. データベースの種類 と バージョン、名前(63 文字まで)、マシンサイズ、接続するサービスに近い リージョン、ストレージを選びます。
  3. 暗号化は、特に理由がなければ SSL 接続のみ許可する のままにします(接続のセキュリティ)。
  4. 接続元として IPv4 アドレスを追加するか、Agent Lab 上で動くサービスからの接続を許可する をオンにします。
  5. データベースを作成 を選びます。

作成には通常 10–15 分かかります。サイズ S の MySQL はさらにかかることがあります。

プロジェクトに接続する#

接続すると、プロジェクト専用のデータベースアカウントが作られ、Agent Lab が生成した強いパスワードとともに接続情報がプロジェクトのシークレットに書き込まれます。パスワードはあなたにも AI ツールにも表示されません。

prompt
orders-api プロジェクトを orders データベースに接続して。どの変数を使うかはコードを読んで確認して。

アシスタントはコードが読む変数を確認し、databases_connect_app に各変数名と、それが接続情報のどの部分かを渡します。

json
{
  "database": "orders",
  "site": "<sites_list のプロジェクト id>",
  "variables": { "DATABASE_URL": "url" }
}

ほかに jdbcUrl、host、port、hostPort、database、user、password、sslmode、ca(サーバー CA)があります。プレビューに書き込む変数と置き換わる変数が表示され、同意するとアカウントを作成してプロジェクトを再起動します。

接続で行われること:

  • プロジェクトのアカウントが自分のデータベースを所有します。テーブルの作成や変更ができるので、ORM が起動時に実行するマイグレーション(Prisma、Drizzle、Django、Rails、Laravel、TypeORM など)も動きます。同じインスタンスの他のデータベースには届かず、アカウントやデータベースも作れません。そこまで必要なければ write(データの読み書き、スキーマ変更なし)か read を頼んでください。
  • プロジェクトにまだデータベースがなければ、インスタンス内に作成されます。名前はプロジェクトのアドレスラベルで、ハイフンはアンダースコアになります。名前を指定する場合は、小文字の英字で始め、小文字の英字・数字・アンダースコアだけを使い、PostgreSQL は 50 文字、MySQL は 64 文字までです。
  • Agent Lab 上で動くサービスからの接続を許可する がオフなら、オンになります。
  • 暗号化:PostgreSQL の url には sslmode=require が付きます。MySQL の url には TLS の設定が入りません。ドライバーごとに書き方が違うため、ドライバー側で TLS をオンにしてください。
  • クライアント証明書を必須にしたデータベースには、まだこの方法で接続できません。手動で接続するか、暗号化を SSL 接続のみ許可する に変えてください。

接続を解除するには databases_disconnect_app を使います。アカウントと書き込んだ変数が削除され、データは残ります。databases_rotate_app_password は新しいパスワードに替えてプロジェクトを再起動します。

AI ツールからテーブルを作成し、データを調べる#

Agent Lab に接続した Claude Code、Codex などの MCP クライアントからなら、データベースのパスワードも SQL クライアントもいりません。

prompt
orders データベースに、id、body、created_at(タイムスタンプ)を持つ notes テーブルを作って、テーブルの一覧を見せて。
  • list_tables はテーブルの一覧、apply_migration は名前付きのマイグレーション(PostgreSQL では 1 つのトランザクション、MySQL では 1 文ずつ)、execute_sql は 1 つのクエリを実行します。実行前にアシスタントが SQL を見せます。
  • マイグレーションはすべて名前と SQL がデータベース内の agentlab_data_control.migrations テーブルに記録されます。
  • オーナー、管理者、データベースの作成者とデータベース管理者は最初から書き込めます。他のメンバーには、データベースの データ権限 か databases_grant で Reader(読み取り) または Writer(読み書き) を付与します。

引数、上限、例は MCP ツール › データベースのデータツールをご覧ください。

自分のコンピューターや他のホストから接続する#

データベースの 設定 タブの 承認済みネットワーク に自分の IPv4 アドレスを追加し、ユーザーとデータベース のユーザーで、概要 タブのアドレスに接続します。server-ca.pem は 証明書 タブからダウンロードします。

sh
psql "host=<address> port=5432 dbname=orders user=<user> sslmode=verify-ca sslrootcert=server-ca.pem"
sh
mysql --host=<address> --port=3306 --user=<user> --password \
  --ssl-mode=VERIFY_CA --ssl-ca=server-ca.pem orders

verify-ca(PostgreSQL)か VERIFY_CA(MySQL)を使ってください。verify-full と VERIFY_IDENTITY は IP アドレスでは使えません。MySQL 9.7 は caching_sha2_password だけを受け付けるため、MySQL 8.0 以降のクライアント、Connector/J 8.0 以降、PHP 7.4 以降を使ってください。概要 タブに Node.js、Python、Go、Java、PHP の例があります。

接続のセキュリティ#

設定内容
承認済みネットワーク接続できる公開 IPv4 アドレスまたは CIDR 範囲を 20 個まで。それ以外からは接続できません。
Agent Lab 上で動くサービスからの接続を許可するAgent Lab の送信元アドレスを追加します。すべての組織のサービスが共有するため、守りはパスワードです。
すべての IP を許可(0.0.0.0/0)インターネット上の誰でも接続を試せます。
SSL 接続のみ許可する既定かつ推奨。すべての接続が TLS を使います。
信頼できるクライアント証明書を必須にするパスワードに加え、証明書 タブで発行したクライアント証明書も必要になります。
暗号化されていないネットワーク トラフィックを許可するTLS なしの接続も受け付けます。推奨しません。

クライアント証明書は 証明書 タブの 証明書を発行 で発行します。秘密鍵は一度しか表示されないので、ダイアログを閉じる前に client-key.pem をダウンロードしてください。証明書を替えるときは、新しい証明書を発行してから古い証明書を取り消すと、止めずに切り替えられます。MySQL では証明書を取り消すと現在の接続がすべて切れ、有効な証明書を持つクライアントは自動で再接続します。

証明書を使う場合は、接続に追加します。

sh
psql "host=<address> port=5432 dbname=orders user=<user> sslmode=verify-ca sslrootcert=server-ca.pem sslcert=client-cert.pem sslkey=client-key.pem"

証明書を必須にした MySQL データベースは、証明書がないとパスワードを間違えたときと同じ Access denied を返します。まず証明書を確認してください。

データベースの 接続履歴 には、直近 30 日間に誰がどのアドレスから接続したか、サインインに失敗した理由が表示されます。databases_connections も同じ内容を返します。

既存のデータベースを移行する#

pg_dump か mysqldump でダンプを作り、データベースの行の データをインポート を使うか、AI ツールに頼みます(databases_import を使います)。Agent Lab は実行前にすべての文をチェックし、受け付けない文を行番号付きで示します。ダンプのコマンドとスキップされる内容は MCP ツール › データベースの移行をご覧ください。

停止・起動・削除#

  • 停止 してもデータとアドレスは残り、接続はすべて切れます。有料プランではストレージの課金が続きます。起動 すると数分で同じアドレスに戻ります。
  • データベースを削除 では名前の入力が必要です。削除前に最終バックアップを作成する を選ぶと最後のバックアップが残ります。停止中のデータベースは、そのために先に起動されます。
  • AI ツールからは databases_stop と databases_start を使います。

特定の時点に復元する#

Business プランでは、データベースの 設定 で ポイントインタイムリカバリ(PITR) をオンにできます。その後は 特定の時点に復元 で、オンにした後の直近 7 日間の任意の時点を選べます。

  • 復元では、その時点のデータを持つ新しいデータベースが作られます。元のデータベースは変わりません。新しいデータベースはプランのデータベース数に数えられ、別に課金され、ポイントインタイムリカバリはオフの状態で始まります。
  • MySQL では、ポイントインタイムリカバリのオン・オフでデータベースが再起動し、数分間(サイズ S では最大 20 分ほど)接続が切れます。
  • 復元を始められるのはオーナーと管理者だけです。