zeabur-database について
Zeaburでデータベースをデプロイし、アプリやローカルクライアントに接続するスキルです。PostgreSQL、MySQL、MongoDB、Redisの接続情報と認証情報を扱います。
主な機能
- 01データベーステンプレートの検索
- 02ネットワーク情報と認証情報の取得
- 03PostgreSQL、MySQL、MongoDB、Redisへの接続
- 04アプリ接続用変数の設定
- 05一般的な接続問題の調査
活用シーン
- 01デプロイ用データベーステンプレートの検索
- 02同一プロジェクト内のアプリとDBの接続
- 03パブリックネットワーク経由のローカル接続
- 04起動や接続文字列の問題への対処
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zeabur/ agent-skills --skill zeabur-databaseインストール後、Claude Code で/zeabur-databaseを入力して読み込まれたか確認します。
詳細
Zeabur データベースのデプロイと統合
Zeabur CLI の呼び出しには、必ず
npx zeabur@latestを使用してください。zeaburを直接実行したり、ほかのインストール方法を使用したりしないでください。npxが利用できない場合は、まず Node.js をインストールしてください。
データベースをデプロイする
デプロイする前に、必ず最初に
zeabur-templateスキルを読み込んでください。 Zeabur テンプレートとは何か、どのように機能するか、どのようにデプロイするかを理解するためです。このスキルでは、データベース固有の統合のみを扱います。テンプレートに関する知識はすべてzeabur-templateにあります。
データベースのテンプレートを検索します。
npx zeabur@latest template search postgresql -i=false --json
デプロイ数が最も多いテンプレートを選びます。ユーザーがデータベースを指定していない場合は、MongoDB を推奨してください。NoSQL ドキュメントストアであるため、スキーマのマイグレーションが不要で、複雑さを軽減し、初回デプロイの成功率を高められます。
デプロイ後:接続方法
どのデータベースでも、必要な情報は 2 つです。接続方法(ホスト名+ポート)と、認証方法(ユーザー名+パスワード+データベース名)です。
接続方法 — service network
npx zeabur@latest service network --id <database-service-id> -i=false
次の情報が表示されます。
- プライベートネットワーク — サービス間アクセス用の内部
hostname:port(例:mysql.zeabur.internal:3306) - パブリックネットワーク — ローカルマシンから接続するための外部
host:port(ポートフォワーディング経由)
認証方法 — variable list
npx zeabur@latest variable list --id <database-service-id> -i=false
データベースサービスのすべての認証情報(ユーザー名、パスワード、データベース名など)が一覧表示されます。
PostgreSQL
認証情報(variable list から取得)
| 変数 | 説明 |
|---|---|
POSTGRES_USERNAME | ユーザー名(デフォルト:root) |
POSTGRES_PASSWORD | パスワード(自動生成) |
POSTGRES_DATABASE | データベース名(デフォルト:zeabur) |
ローカルマシンから接続する
psql "postgresql://POSTGRES_USERNAME:POSTGRES_PASSWORD@PUBLIC_HOST:PUBLIC_PORT/POSTGRES_DATABASE"
アプリから接続する(同じプロジェクト内)
variable list の値を使って、アプリサービスに環境変数を設定します。
DB_HOST=${POSTGRES_HOST}
DB_PORT=${POSTGRES_PORT}
DB_USERNAME=${POSTGRES_USERNAME}
DB_PASSWORD=${POSTGRES_PASSWORD}
DB_DATABASE=${POSTGRES_DATABASE}
または、次の接続文字列を作成します。postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DATABASE}
MySQL
認証情報(variable list から取得)
| 変数 | 説明 |
|---|---|
MYSQL_USERNAME | ユーザー名(デフォルト:root) |
MYSQL_PASSWORD | パスワード(自動生成) |
MYSQL_DATABASE | データベース名(デフォルト:zeabur) |
ローカルマシンから接続する
mysql -h PUBLIC_HOST -P PUBLIC_PORT -u MYSQL_USERNAME -p MYSQL_DATABASE
アプリから接続する(同じプロジェクト内)
variable list の値を使って、アプリサービスに環境変数を設定します。
DB_HOST=${MYSQL_HOST}
DB_PORT=${MYSQL_PORT}
DB_USERNAME=${MYSQL_USERNAME}
DB_PASSWORD=${MYSQL_PASSWORD}
DB_DATABASE=${MYSQL_DATABASE}
または、次の接続文字列を作成します。mysql://${MYSQL_USERNAME}:${MYSQL_PASSWORD}@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}
MongoDB
認証情報(variable list から取得)
| 変数 | 説明 |
|---|---|
MONGO_USERNAME | ユーザー名(デフォルト:mongo) |
MONGO_PASSWORD | パスワード(自動生成) |
ローカルマシンから接続する
mongosh "mongodb://MONGO_USERNAME:MONGO_PASSWORD@PUBLIC_HOST:PUBLIC_PORT"
アプリから接続する(同じプロジェクト内)
次の接続文字列を作成します。mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@${MONGO_HOST}:${MONGO_PORT}
Mongoose、PyMongo、およびあらゆる MongoDB ドライバーで使用できます。
Redis
認証情報(variable list から取得)
| 変数 | 説明 |
|---|---|
REDIS_PASSWORD | パスワード(自動生成) |
Redis には、デフォルトでユーザー名やデータベース名はありません。
ローカルマシンから接続する
redis-cli -h PUBLIC_HOST -p PUBLIC_PORT -a REDIS_PASSWORD
アプリから接続する(同じプロジェクト内)
次の接続文字列を作成します。redis://:${REDIS_PASSWORD}@${REDIS_HOST}:${REDIS_PORT}
ioredis、redis-py、go-redis、およびあらゆる Redis クライアントで使用できます。
注意事項
- 変数の参照 — Zeabur はフラットな名前空間を使用します。プロジェクト内のすべてのサービスで公開されている変数は、すべて統合されます。アプリからは名前を直接指定して参照します(例:
${POSTGRES_HOST})。プレフィックスは不要です。Zeabur Dashboard から設定してください。${}の展開に関する既知のバグがあるため、CLI からの設定は避けてください。 - 起動順序 — データベースの準備が整う前にアプリがクラッシュする場合は、
zeabur-startup-orderスキルを確認してください。 - パスワードの特殊文字 — 自動生成されたパスワードには、URL の解析を妨げる文字(
@、/、%)が含まれる場合があります。アプリで解析に失敗する場合は、接続文字列ではなく個別の変数を使用してください。 - ポートフォワーディングが無効 —
service networkでポートフォワーディングが無効と表示される場合は、次のコマンドで有効にしてください:npx zeabur@latest service port-forward --id <id> --enable