pocketbase について
pocketbaseは、単体バイナリまたはGoパッケージモードのPocketBaseバックエンドを操作するスキルです。認証、コレクション、レコード、バックアップ、マイグレーション、安全性確認のスクリプトと資料を備えています。
主な機能
- 01単体モードとGoパッケージモードの判定
- 02認証・コレクション・レコードの管理
- 03バックアップの作成・復元・削除
- 04マイグレーションテンプレートの生成
- 05APIルールの確認とテスト実行
活用シーン
- 01PocketBaseプロジェクトのセットアップ
- 02スクリプトによるコレクションとレコードの管理
- 03バックエンドデータのバックアップや復元
- 04APIルールとカスタムフックの検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ikumasudo/ pocketbase-skill --skill pocketbaseインストール後、Claude Code で/pocketbaseを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/migration-template.gomigration-template.jsreferences/api-rules-guide.mdauth-api.mdbackups-api.mdcollections-api.mde2e-testing.mdfield-types.mdfile-handling.mdgo-framework.mdgo-hooks-routes.mdgo-migrations.mdgotchas.mdjs-sdk.mdjsvm-hooks.mdmigrations.mdrecords-api.mdrelation-patterns.mdscripts/pb_auth.pypb_backups.pypb_collections.pypb_config.pypb_create_migration.pypb_e2e_helpers.pypb_health.pypb_records.py詳細
PocketBase スキル
同梱の Python スクリプトとリファレンスを使って、PocketBase バックエンドプロジェクト(スタンドアロンバイナリまたは Go パッケージモード)を操作します。
スキルのリソース
まず、このスキルディレクトリ内のリソースを使用してください。
scripts/- 認証、コレクション、レコード、バックアップ、マイグレーションテンプレート生成用の実行可能なヘルパーreferences/- 必要に応じて読み込む詳細なバックエンドドキュメントassets/- マイグレーションテンプレート
まず --help の出力とこのガイドを確認してください。動作が不明な場合は、該当するスクリプトファイルだけを読んでください。
0. クイックスタート
モードの判定
go.modにgithub.com/pocketbase/pocketbaseが含まれている場合 -> Go パッケージモード- それ以外の場合 -> スタンドアロンモード
ブートストラップ(PocketBase が起動していない場合)
- 最新バージョンを動的に解決します。
VERSION=$(curl -s https://api.github.com/repos/pocketbase/pocketbase/releases/latest | python3 -c "import sys,json; print(json.load(sys.stdin)['tag_name'].lstrip('v'))")
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
OS=$(uname -s | tr A-Z a-z)
curl -sL "https://github.com/pocketbase/pocketbase/releases/download/v${VERSION}/pocketbase_${VERSION}_${OS}_${ARCH}.zip" -o pb.zip
unzip -o pb.zip pocketbase && rm pb.zip
- スーパー ユーザーを作成します。
./pocketbase superuser create [email protected] <password>
.envを設定します(.envが.gitignoreに含まれていることを確認してください)。
PB_URL=http://127.0.0.1:8090
[email protected]
PB_SUPERUSER_PASSWORD=your-password
- サービスを起動します。
nohup ./pocketbase serve --http=127.0.0.1:8090 > pb.log 2>&1 &
- ヘルスチェックを実行します。
python scripts/pb_health.py
2026-02-27 時点で、最新の安定版リリースは v0.36.5 です。
1. 設計と安全性のチェックリスト
モデルの事前知識には v0.23 より前のパターンが含まれている可能性があります。スキーマまたはフックを変更する前に、以下を確認してください。
v0.23 以降の重要なルール
_adminsではなく_superusersを使用しますschemaではなくコレクションのfieldsを使用しますoptionsラッパーは使わず、フラットなフィールドプロパティを使用します- マイグレーションでは型付きフィールドコンストラクター(
TextField、SelectField、RelationFieldなど)を使用します - ルートでは
:paramではなく{param}のパス構文を使用します - JSVM フックでは
e.next()を呼び出し、Go フックではreturn e.Next()を返します - 複数の行が該当する可能性がある場合、
@collection.*フィルターでは?=を使用します
API ルールのデフォルト
null-> スーパー ユーザーのみ""-> パブリック(未認証を含む)
デフォルトでは null に設定し、必要なものだけを公開してください。
Go モードの確認事項
- コレクションの変更には API/管理 UI を使用し、PocketBase にマイグレーションを自動生成させます
- 生成された
pb_migrations/内のファイルをコミットします - 開発環境では
migratecmd.MustRegister(..., migratecmd.Config{Automigrate: true})を設定します - 手動マイグレーションを使用する場合は、ブランクインポートがあることを確認します:
_ "yourmodule/migrations" - 手動の Go マイグレーションでルールを割り当てる場合は、
types.Pointer("...")を使用します
2. 主な操作
2.1 認証
スーパー ユーザー認証:
python scripts/pb_auth.py
ユーザー認証:
python scripts/pb_auth.py --collection users --identity [email protected] --password secret
2.2 コレクション
一覧表示/取得:
python scripts/pb_collections.py list
python scripts/pb_collections.py get posts
作成/更新/削除:
python scripts/pb_collections.py create --file schema.json
python scripts/pb_collections.py update posts --file updates.json
python scripts/pb_collections.py delete posts
一括インポート(複数コレクションのセットアップに推奨):
python scripts/pb_collections.py import --file collections.json
重要:
- 新しい
usersコレクションは作成せず、既存のものを更新してください - ペイロードに API ルールが含まれる場合は、シェルの引用符に関する問題を避けるため
--fileを使用してください fieldsを更新する場合は、全フィールドを送信してください(部分マージではありません)
2.3 レコード
python scripts/pb_records.py list posts --filter 'status="published"' --sort "-created" --expand "author"
python scripts/pb_records.py get posts <recordId>
python scripts/pb_records.py create posts --file record.json
python scripts/pb_records.py update posts <recordId> '{"status":"published"}'
python scripts/pb_records.py delete posts <recordId>
2.4 バックアップ
python scripts/pb_backups.py list
python scripts/pb_backups.py create
python scripts/pb_backups.py restore <backupKey>
python scripts/pb_backups.py delete <backupKey>
復元するとすべてのデータが置き換えられます。復元の前に必ずバックアップを作成してください。
2.5 マイグレーション
主なワークフロー(両モード共通):
- PocketBase を起動します
- API/管理 UI でコレクションを変更します
- 自動生成された
pb_migrations/内のマイグレーションをコミットします
手動マイグレーションテンプレートの生成(シード/データ変換/生 SQL の場合のみ):
python scripts/pb_create_migration.py "backfill_user_slugs"
python scripts/pb_create_migration.py "seed_categories" --dir ./pb_migrations
3. 検証
スキーマまたはルールを変更した後、以下を実行します。
python scripts/pb_collections.py get <collection>- CRUD のスモークテスト(作成/一覧表示/取得/更新/削除)
- スーパー ユーザー以外のトークンを使ったルールテスト
ルールによって拒否された場合の動作に関するリファレンス:
listRuleで拒否 ->200と空のitemsviewRuleで拒否 ->404createRuleで拒否 ->400updateRuleで拒否 ->404deleteRuleで拒否 ->404- 一般ユーザーに対する
nullルール ->403
null 以外の API ルールまたはカスタムフック/ルートがある場合、E2E テストは必須です。references/e2e-testing.md と scripts/pb_e2e_helpers.py を使用してください。
E2E テストの最低限のカバレッジ:
- 未認証アクセスが拒否される
- 認証済みユーザーの許可されたパスが成功する
- 他ユーザーのデータへのアクセスがブロックされる
- 作成ペイロードでの所有者の偽装がブロックされる
cascadeDeleteの動作が検証される- カスタムルートの認証強制が検証される
- フックの副作用が検証される
4. リファレンスマップ
必要なものだけをお読みください。
- よくある落とし穴:
references/gotchas.md - API のルール:
references/api-rules-guide.md - コレクション API:
references/collections-api.md - レコード API:
references/records-api.md - 認証 API:
references/auth-api.md - マイグレーション(JS):
references/migrations.md - フィールド型:
references/field-types.md - リレーションのパターン:
references/relation-patterns.md - ファイルの処理:
references/file-handling.md - JSVM フック:
references/jsvm-hooks.md - Go のセットアップ:
references/go-framework.md - Go のマイグレーション:
references/go-migrations.md - Go のフック/ルート:
references/go-hooks-routes.md - E2E テスト:
references/e2e-testing.md
フロントエンド統合作業には pb-react-spa スキルを使用します。