CLI コマンド
Paideia LMS が提供するコマンドラインインターフェース(CLI)を使用して、サーバーを実行し、データベースマイグレーションを管理し、ターミナルウィンドウから管理タスクを実行できます。
Paideia LMS は、Web サーバーとコマンドラインインターフェースの両方として機能するデュアルモードバイナリです。デフォルトでは、引数なしで paideia を実行するとサーバーが起動します。CLI コマンドは paideia <command> を実行することで利用できます。
Paideia の実行
Section titled “Paideia の実行”サーバーを起動(デフォルトの動作):
# サーバーを起動(デフォルトの動作)paideia
# または明示的にpaideia serverヘルプを取得:
# ヘルプ情報と利用可能なコマンドを表示paideia helpターミナルに次のメッセージが表示されます:
╔═══════════════════════════════════════════════════════╗║ ║║ ██████╗ █████╗ ██╗██████╗ ██████╗██╗ █████╗ ║║ ██╔══██╗██╔══██╗██║██╔══██╗██╔═══╝██║██╔══██╗ ║║ ██████╔╝███████║██║██║ ██║██████╗██║███████║ ║║ ██╔═══╝ ██╔══██║██║██║ ██║██╔═══╝██║██╔══██║ ║║ ██║ ██║ ██║██║██████╔╝██████╗██║██║ ██║ ║║ ╚═╝ ╚═╝ ╚═╝╚═╝╚═════╝ ╚═════╝╚═╝╚═╝ ╚═╝ ║║ ║║ Learning Management System ║║ ║╚═══════════════════════════════════════════════════════╝
Paideia LMS - 0.5.5 Paideia CLI Commands┌────────────────────────┬───────────────────────────────────────────────────────────────┐│ Command │ Description │├────────────────────────┼───────────────────────────────────────────────────────────────┤│ paideia help │ Show help ││ paideia server │ Start the Paideia server ││ paideia migrate status │ Show migration status ││ paideia migrate up │ Run pending migrations ││ paideia migrate fresh │ Drop all database entities and re-run migrations from scratch ││ paideia migrate dump │ Dump database to SQL file ││ paideia sandbox reset │ Reset sandbox database (only when SANDBOX_MODE is enabled) │└────────────────────────┴───────────────────────────────────────────────────────────────┘サーバーコマンド
Section titled “サーバーコマンド”paideia server
Section titled “paideia server”Paideia LMS Web サーバーを起動します。これは引数なしで paideia を実行したときのデフォルトの動作です。
# サーバーを起動paideia server
# または単純に(デフォルトの動作)paideiaサーバーは設定されたポートで起動し、リッスンします(デフォルト:バックエンド 3001、フロントエンド 3000)。サーバーは Ctrl+C で停止するまで無限に実行されます。
paideia help
Section titled “paideia help”ASCII ロゴ、紹介、および利用可能なコマンドを表示します。これにより、Paideia LMS の機能とすべての CLI コマンドの概要が提供されます。
paideia helppaideia version
Section titled “paideia version”Paideia LMS のバージョン番号を表示します。
paideia versionマイグレーションコマンド
Section titled “マイグレーションコマンド”Paideia LMS は、データベーススキーマを管理し、管理タスクを実行するための包括的なデータベースマイグレーションコマンドのセットを提供します。
paideia migrate status
Section titled “paideia migrate status”すべてのデータベースマイグレーションの現在の状態を表示します。これにより、どのマイグレーションが実行されたか、どのマイグレーションが保留中かを表示します。
paideia migrate status出力例:
Migration Name Status────────────────────────────────────────1234567890_initial_schema ✅ Applied1234567891_add_users_table ✅ Applied1234567892_add_courses_table ⏳ Pendingpaideia migrate up
Section titled “paideia migrate up”すべての保留中のマイグレーションを実行します。これにより、まだ実行されていないマイグレーションが適用されます。
paideia migrate up使用例:
- Paideia LMS を更新した後、データベーススキーマの変更を適用
- 本番環境で新しいマイグレーションを実行
- コード変更をプルした後、データベース構造を更新
paideia migrate fresh
Section titled “paideia migrate fresh”すべてのデータベースエンティティを削除し、最初からすべてのマイグレーションを再実行します。これは破壊的な操作で、すべてのデータとスキーマを削除してから、すべてを再構築します。
# フレッシュマイグレーション(確認プロンプトが表示されます)paideia migrate fresh
# または強制フラグを使用して確認をスキップpaideia migrate fresh --force-accept-warning使用例:
- 開発中のデータベースの完全なリセット
- クリーンなデータベースから開始
- 最初からデータベースを再構築
paideia migrate dump
Section titled “paideia migrate dump”データベース全体を SQL ファイルにダンプします。これにより、後で復元できるデータベースのバックアップが作成されます。
# 自動生成されたファイル名でダンプpaideia migrate dump
# カスタムファイル名でダンプpaideia migrate dump -o my-backup.sql
# または長い形式を使用paideia migrate dump --output my-backup.sql出力場所: すべてのダンプファイルは、プロジェクトルートの paideia_data/ ディレクトリに保存されます。ディレクトリが存在しない場合は、自動的に作成されます。
ファイル名形式: ファイル名が指定されていない場合、ダンプファイルは paideia-dump-{timestamp}.sql という名前になります。
使用例:
- 大きな変更を行う前にデータベースのバックアップを作成
- 別のサーバーへの移行のためにデータベースをエクスポート
- 災害復旧のためのバックアップを作成
- cron ジョブやスクリプトによるバックアップの自動化
出力例:
paideia migrate dump
# ✅ データベースダンプ完了: paideia_data/paideia-dump-2025-11-02T10-30-45-123Z.sqlサンドボックスコマンド
Section titled “サンドボックスコマンド”Paideia LMS は、開発およびテスト環境用のサンドボックス管理コマンドを提供します。
paideia sandbox reset
Section titled “paideia sandbox reset”SANDBOX_MODE が有効な場合、サンドボックスデータベースを手動でリセットします。このコマンドは、システムテーブル(ジョブログ、マイグレーションなど)を保持しながら、すべてのユーザーデータ(学生、コースなど)を削除し、リセットプロセス中にゼロダウンタイムを実現します。
# サンドボックスデータベースをリセット(SANDBOX_MODE が有効な場合のみ動作)paideia sandbox reset要件:
SANDBOX_MODE環境変数は"1"または"true"に設定する必要があります- サンドボックスモードが無効な場合、コマンドは静かに終了します
機能:
- すべてのユーザーデータコレクション(ユーザー、コース、登録、提出物など)を削除
- システムテーブル(
payload-jobs、payload-jobs-log、payload-migrationsなど)を保持 seed.json(利用可能な場合)から新しいデータでデータベースを再シード- ゼロダウンタイムを実現 - アプリケーションはリセット中も動作を継続
使用例:
- 開発中の手動データベースリセット
- データベースリセット機能のテスト
- サーバーを再起動せずにテストデータをリセット
- システム状態を保持しながらユーザーデータをクリア
出力例:
paideia sandbox reset
╔═══════════════════════════════════════════════════════╗║ ║║ ██████╗ █████╗ ██╗██████╗ ██████╗██╗ █████╗ ║║ ██╔══██╗██╔══██╗██║██╔══██╗██╔═══╝██║██╔══██╗ ║║ ██████╔╝███████║██║██║ ██║██████╗██║███████║ ║║ ██╔═══╝ ██╔══██║██║██║ ██║██╔═══╝██║██╔══██║ ║║ ██║ ██║ ██║██║██████╔╝██████╗██║██║ ██║ ║║ ╚═╝ ╚═╝ ╚═╝╚═╝╚═════╝ ╚═════╝╚═╝╚═╝ ╚═╝ ║║ ║║ Learning Management System ║║ ║╚═══════════════════════════════════════════════════════╝
🔄 サンドボックスデータベースをリセット中...✅ サンドボックスデータベースのリセットが正常に完了しました!ゼロダウンタイム
サンドボックスリセットプロセスは、リセット中にシステムテーブルを保持することでゼロダウンタイムを実現します。アプリケーションは、ユーザーデータがクリアされ、再シードされている間も正常に動作を継続します。これは、データベース全体を削除してダウンタイムを引き起こす migrate fresh とは異なります。
コマンドフラグ
Section titled “コマンドフラグ”グローバルフラグ
Section titled “グローバルフラグ”すべてのコマンドは、次のグローバルフラグをサポートしています:
--help または -h
Section titled “--help または -h”指定されたコマンドのヘルプ情報を表示します。
paideia migrate --helpマイグレーションコマンドフラグ
Section titled “マイグレーションコマンドフラグ”--force-accept-warning
Section titled “--force-accept-warning”破壊的な操作の確認プロンプトをスキップします。注意して使用してください。
利用可能:
paideia migrate fresh
例:
paideia migrate fresh --force-accept-warning-o または --output(migrate dump 用)
Section titled “-o または --output(migrate dump 用)”データベースダンプのカスタム出力ファイル名を指定します。ファイル名は paideia_data/ ディレクトリを基準にします。
例:
paideia migrate dump -o backup-before-update.sqlベストプラクティス
Section titled “ベストプラクティス”データベースマイグレーション
Section titled “データベースマイグレーション”-
常に最初にバックアップ: 本番環境でマイグレーションを実行する前にデータベースダンプを作成
ターミナルウィンドウ paideia migrate dump -o backup-before-migration.sqlpaideia migrate up -
ステータスを確認: マイグレーションを適用する前後でマイグレーションステータスを確認
ターミナルウィンドウ paideia migrate status -
開発環境でテスト: 常に最初に開発環境でマイグレーションをテスト
-
Fresh を慎重に使用: 開発環境でのみ
migrate freshを使用
データベースバックアップ
Section titled “データベースバックアップ”-
定期的なバックアップ: 定期的なデータベースダンプをスケジュール
ターミナルウィンドウ # 毎日のバックアップ用の cron ジョブの例0 2 * * * cd /path/to/paideia && paideia migrate dump -o daily-$(date +\%Y-\%m-\%d).sql -
大きな変更の前: 常に次の操作の前にダンプ:
- マイグレーションの実行
- Paideia LMS の更新
- 重要なスキーマ変更の実行
-
ストレージ: 長期保存のためにダンプを外部ストレージ(S3 など)に移動
-
テスト: バックアップが有効であることを確認するために、定期的に復元手順をテスト
ファイル組織
Section titled “ファイル組織”- ダンプ場所: すべてのデータベースダンプは
paideia_data/ディレクトリに自動保存されます - ディレクトリ作成:
paideia_data/ディレクトリが存在しない場合は、自動的に作成されます - Git 無視:
paideia_data/ディレクトリは git によって自動的に無視されます - Docker 無視:
paideia_data/ディレクトリは Docker ビルドから除外されます
Paideia CLI コマンドは、適切な終了コードを返します:
- 0: コマンドが正常に完了
- 1: コマンドがエラーで失敗
これにより、スクリプトや自動化ツールとの簡単な統合が可能になります:
#!/bin/bashif paideia migrate up; then echo "マイグレーションが正常に適用されました"else echo "マイグレーションが失敗しました" exit 1fiコンパイル済みバイナリサポート
Section titled “コンパイル済みバイナリサポート”すべての CLI コマンドは、コンパイル済みの単一バイナリデプロイメントとシームレスに動作します:
-
開発: コマンドを直接実行
ターミナルウィンドウ bun server/index.ts migrate status -
本番: 単一バイナリにコンパイルして実行
ターミナルウィンドウ bun build server/index.ts --compile --outfile paideia./paideia migrate status
CLI モードはコンパイル済みバイナリで動作します。理由:
- マイグレーションはコンパイル時にバイナリにバンドルされます
- マイグレーションユーティリティにファイルシステム依存関係がありません
- すべてのコマンドは、コンパイル済みモードと非コンパイルモードで同じように動作します
トラブルシューティング
Section titled “トラブルシューティング”よくある問題
Section titled “よくある問題”マイグレーションコマンドが動作しない:
- 正しいプロジェクトディレクトリにいることを確認
- データベース接続が正しく設定されていることを確認
DATABASE_URL環境変数が設定されていることを確認
ダンプコマンドが失敗する:
- プロジェクトディレクトリに書き込み権限があることを確認
- 十分なディスク容量があることを確認
- データベース接続がアクティブであることを確認
サーバーが起動しない:
- 必要なポートが既に使用されていないことを確認
- 環境変数が正しく設定されていることを確認
- 特定のエラーメッセージについてログを確認
関連ドキュメント
Section titled “関連ドキュメント”- 設定リファレンス - 環境変数と設定オプション
- インストールとセットアップ - 初期設定と構成
- データベース管理 (EN) - データベース管理と管理
