---
title: "Nibiru CLI"
description: "`./nibiru` バイナリのすべてのフラグ、すべてのサブコマンド。"
---

`./nibiru` バイナリは、すべての Nibiru プロジェクトに付属するコンパイルされたコマンドラインツールです。このバイナリは、モジュール、コントローラー、プラグインをスキャフォールディングし、マイグレーションを実行し、キャッシュを管理します。（CMS モジュールを使用すると）ページの作成と削除もできます。
```
  _   _ _ _     _              ______                                          _
 | \ | (_) |   (_)            |  ____|                                        | |
 |  \| |_| |__  _ _ __ _   _  | |__ _ __ __ _ _ __ ___   _____      _____  _ _| | __
 | . ` | | '_ \| | '__| | | | |  __| '__/ _` | '_ ` _ \ / _ \ \ /\ / / _ \| '__| |/ /
 | |\  | | |_) | | |  | |_| | | |  | | | (_| | | | | | |  __/\ V  V / (_) | |  |   <
 |_| \_|_|_.__/|_|_|   \__,_| |_|  |_|  \__,_|_| |_| |_|\___| \_/\_/ \___/|_|  |_|\_\
```
## すべてのフラグ

| フラグ | 何をしますか |
|---|---|
| `-m {name}` | 名前が `{name}` の新しいモジュールを生成します。Graylog ロギングフックを接続するには `-g` を追加します。 |
| `-c {name}` | 名前が `{name}` の新しいコントローラーとテンプレートを生成します。 |
| `-p {name} -m {module}` | 名前が `{name}` の新しいプラグインをモジュール `{module}` 内に生成します。Graylog を追加するには `-g` を使用します。 |
| `-cache-clear` | `application/view/templates_c/` と `application/view/cache/` をクリアします。 |
| `-s` | フレームワークフォルダをブートストラップし、権限を修正します。インストール後一度だけ実行してください。 |
| `-mi {env}` | `application/settings/config/database/` から `{env}`（ローカル、ステージング、またはプロダクション）に対して移行を実行します。 |
| `-mi-reset {env}` | `{env}` の移行監査テーブルを削除します。**破壊的です。** |
| `-mi-reset-file {file} {env}` | 単一の移行ファイルが `{env}` で実行されたことを忘却します。 |
| `-ws {URL} -wp {PORT}` | `{URL}:{PORT}`（対話型 REPL）に WebSocket に接続します。 |
| `-new-cms-page {name}` | （CMS モジュールのみ）既存のテンプレートにバインドされた新しい CMS ページを作成します。 |
| `-delete-cms-page {name}` | （CMS モジュールのみ）CMS ページを削除します。 |
| `-h` | ヘルプテキストを表示します。 |
| `-v` / `-version` | バイナリのバージョンとフレームワークのバージョンを印刷します。 |

## 実際に使う日常コマンド
```bash
# create a controller + view
./nibiru -c products

# create a module with Graylog hooks
./nibiru -m billing -g

# create a plugin inside that module
./nibiru -p invoices -m billing

# run migrations
./nibiru -mi local

# clear the Smarty cache after a deploy
./nibiru -cache-clear

# show framework version
./nibiru -v
```
## 環境

ほとんどのコマンドは `APPLICATION_ENV` を尊重します：
```bash
APPLICATION_ENV=production ./nibiru -mi production
APPLICATION_ENV=staging    ./nibiru -mi staging
```
`-mi` の後尾の `{env}` 引数は、移行先を選択します。両方が一致する必要があります。

## CLIが構築されている技術

このバイナリは、MySQL、PostgreSQL（libpq）およびODBCクライアントライブラリにリンクされたコンパイル済みのC++実行ファイルです。条件付きコンパイルにより、libpqなしでビルドされたバイナリも引き続きMySQLのみのデプロイメントで動作します — ハードな依存関係ではなく、優雅な劣化です。

プロジェクトルートの `index.php` にバイナリがあります。必要であれば実行可能にするには `chmod +x nibiru` を実行します。

## CI 統合

GitHub Actionsのシンプルなステップ:
```yaml
- name: Run migrations
  run: |
    APPLICATION_ENV=production ./nibiru -mi production
  env:
    DB_HOST: ${{ secrets.DB_HOST }}
    DB_USER: ${{ secrets.DB_USER }}
    DB_PASS: ${{ secrets.DB_PASS }}
```
CLI がマイグレーションに失敗すると非ゼロ終了するので、CI は SQL エラーをキャッチします。
