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を実行するか、アカウント設定 › 開発者 › 接続済みのアプリで接続を解除するまで有効です。トークンはあなただけが読み取れるように保存されます。