ドキュメント

Espobase CLI

ターミナルからプロジェクトを操作できます。フォルダをプロジェクトにリンクし、TypeScriptの型を生成し、読み取り専用クエリを実行し、ログと使用量を確認できます。Node.js 20以降が必要です。

← すべてのドキュメント

はじめに

npx espobase login   # opens your browser: sign in and click Allow
npx espobase init    # link this folder, write espobase.types.ts, show your app's settings

または、npm install -g espobaseで一度インストールして、espobase …を実行します。

コマンド

espobase loginブラウザが開きます。Espobaseにログインして「許可」をクリックしてください。サーバーでは--token espo_pat_…を使います。
espobase init [<ref>]このフォルダをプロジェクトにリンクし、espobase.types.tsを書き出し、アプリのESPOBASE_URLを表示します。
espobase projects list組織ごとのプロジェクト一覧。
espobase projects create <name> --org <slug>新しいプロジェクト(データベースはすぐに準備されます)。
espobase link <ref> / unlinkこのフォルダをプロジェクトにリンクします(.espobase/project.json。コミットしても安全です)。
espobase gen types [--out <file>]@espobase/clientのcreateClient<Database>()用のTypeScriptの型。
espobase db query "<sql>"読み取り専用のSQL:SELECT、EXPLAIN、SHOW…
espobase migration new <name>espobase/migrations に、現在の UTC 時刻を名前にした新しい SQL ファイルを作成します。
espobase migration listどのマイグレーションファイルが適用済み・未適用・変更済みかを表示します。
espobase db push [--dry-run]未適用のマイグレーションファイルを順番に、1ファイルずつ1つのトランザクションで適用します。--dry-run は確認してからすべてロールバックします。
espobase logs [--errors]最近のAPIリクエスト:パス、ステータス、所要時間(本文やシークレットは含みません)。
espobase usage [--range 7d]リクエスト、帯域幅、データベースとファイルのストレージ、AIの使用量。
espobase storage ls [<bucket>]バケットの一覧、または1つのバケット内のファイル。
espobase deploy <フォルダ> --site <アドレス>ビルドフォルダをホスティングのサイトに公開し、そのまま公開状態にします(サイトのデプロイ権限が必要)。`--message`、`--no-activate`。
espobase sites listホスティングしているサイトとそのアドレス。
espobase ai propose "<request>"ダッシュボードでレビューして適用するスキーマ変更プラン(SQLとリスク)。
espobase openリンク済みのプロジェクトをダッシュボードで開きます。
espobase whoami / logoutログイン中のアカウント。ログアウト(ログインの取り消し)。

すべてのコマンドで、スクリプト用の--jsonと、リンク済み以外のプロジェクトを使うための--project <ref>を指定できます。

マイグレーション

スキーマをリポジトリで管理しましょう。変更ごとに SQL ファイルを書き、コードと同じようにレビューして、ターミナルや CI からプロジェクトにプッシュします。

npx espobase migration new create_dishes
# write the SQL in espobase/migrations/20261005143000_create_dishes.sql
npx espobase db push --dry-run   # runs it, then rolls everything back
npx espobase db push             # applies it
  • ファイルはバージョン順に、それぞれ1回だけ実行されます。Espobase はバージョン、名前、チェックサム、実行者、日時を記録し、SQL 自体はリポジトリに残ります。
  • 各ファイルは記録と一緒に1つのトランザクションで実行され、すべて適用されるか、まったく適用されないかのどちらかです。失敗するとプッシュはそこで止まり、ファイルと行を表示します。
  • 適用済みのファイルは編集せず、新しいファイルを書いてください。db push は変更されたファイルや、最新の適用済みより古いファイルを拒否します。
  • 新しいテーブルでは行レベルセキュリティが有効です。アプリからアクセスできるよう、同じファイルでポリシーも追加してください。
  • SQL エディターと同じルールが適用されます。開発者はデータとスキーマを変更でき、ポリシー、GRANT などの権限の変更には管理者が必要です。破壊的な文(DROP、TRUNCATE、WHERE なしの DELETE など)には --allow-destructive と管理者が必要です。
  • プッシュには Apply migrations 権限(database:write)が必要です。サインイン時に求められるか、CI 用のトークンを作成するときに選びます。CI では --yes を付けてください。

CIとサーバー

ダッシュボード(アカウント設定 › 開発者)で、ジョブに必要なスコープだけを持つパーソナルアクセストークンを作成し、ESPOBASE_TOKENとして渡します:

ESPOBASE_TOKEN=espo_pat_… npx espobase gen types --project <ref>
ESPOBASE_TOKEN=espo_pat_… npx espobase db push --yes --project <ref>

CLIでできること・できないこと

  • あなたがアクセスできるプロジェクトで、あなたのロールのまま、あなたとして動作します。
  • プロジェクトを変更するのは明示的な権限があるときだけです。db push はマイグレーションファイルを適用し、functions deploy は Edge Functions を、deploy はホスティングのサイトをデプロイします。それ以外の SQL は読み取り専用で、AI によるスキーマ変更はダッシュボードであなたが適用する提案です。
  • データベースのパスワードやAPIキーを取得することはありません。
  • ブラウザでのログインは、espobase logoutを実行するか、アカウント設定 › 開発者 › 接続済みのアプリで接続を解除するまで有効です。トークンはあなただけが読み取れるように保存されます。