いくつかの AI の助けを借りて、discourse コマンドのサブコマンドの包括的なリストを作成しました。
discourse CLI(Thor gem を使用して script/discourse 経由で実装されています)は、バックアップと復元、サイト管理とモード、データベースユーティリティ、**データ移行(インポート/エクスポート)**の 4 つのカテゴリに分類された 13 のコアサブコマンドを提供します。
コマンドクイックリファレンス
| カテゴリ | サブコマンド | 主な機能 |
|---|---|---|
| バックアップと復元 | backup |
完全またはデータベースのみを含むバックアップアーカイブを生成します。 |
restore |
.tar.gz バックアップファイルをインスタンスに復元します。 |
|
enable_restore |
復元コマンドの実行を許可します。 | |
disable_restore |
復元の実行権限を取り消します。 | |
rollback |
失敗した復元後にデータベースの状態を元に戻します。 | |
| サイトモード | enable_readonly |
サイト全体で一時的な読み取り専用モードを切り替えます。 |
disable_readonly |
読み取り専用モードを解除し、通常のサイト書き込みを復元します。 | |
request_refresh |
接続されているすべてのアクティブなクライアントにブラウザのリフレッシュプロンプトを発行します。 | |
| データベース操作 | remap |
データベーステーブル全体でグローバルなテキスト検索と置換を実行します。 |
| データ移行 | export_category |
カテゴリ、そのトピック、および関連するユーザーをエクスポートします。 |
import_category |
カテゴリアーカイブを現在のフォーラムにインポートします。 | |
export_topics |
ID により特定のトピックと、その作成者/返信者のアカウントをエクスポートします。 | |
import_topics |
トピックアーカイブを現在のフォーラムにインポートします。 |
サブコマンドの詳細ドキュメント
1. バックアップと復元コマンド
discourse backup [FILENAME]
-
説明: フォーラムのデータベースとアセットの完全なバックアップを作成します。
-
フラグ:
-
--sql-only: (ブール値、デフォルト:false)ローカルにアップロードされたファイルをスキップし、PostgreSQL データベースのみをダンプします。 -
--s3-uploads: (ブール値、デフォルト:false)S3 に保存されているアセットをバックアップアーカイブに含めることを強制します(--sql-onlyが設定されている場合は無視されます)。 -
例:
discourse backup
discourse backup --sql-only
discourse restore [FILENAME]
- 説明:
/var/www/discourse/public/backups/defaultにあるローカルの.tar.gzアーカイブからフォーラムのバックアップを復元します。 - 前提条件: まず
discourse enable_restoreを実行する必要があります。 - 例:
discourse restore discourse-2026-07-22-120000-v2026xxxx.tar.gz
discourse enable_restore と discourse disable_restore
- 説明: コンソール/ウェブベースの復元タスクを許可または制限するアプリケーションフラグを切り替えます。
- 使用手順:
discourse enable_restore
discourse restore <filename>
discourse disable_restore
discourse rollback
- 説明: 失敗した復元実行前の時点にデータベーススキーマと状態をロールバックします。
2. サイト状態とクライアント制御
discourse enable_readonly と discourse disable_readonly
- 説明: Redis 内の
READONLY_MODE_KEYを設定またはクリアします。 - 詳細:
- データベースへの書き込みを凍結しますが、ユーザーがサイトを閲覧できるようにします。
- アクティブな間に更新される短い生存時間(TTL)ループを使用し、ターミナルセッションがクラッシュした場合でもサイトが永久にロックされないようにします。
discourse request_refresh
- 説明: MessageBus を介してシステムメッセージを送信し、オンラインのすべてのウェブセッションにウェブページを再読み込みするよう指示します。アセットの更新やグローバルなテーマ変更をデプロイした後で有用です。
3. データベースリマップ
discourse remap [OPTIONS] FROM TO
-
説明: データベース内のテキスト列に対して直接文字列の検索と置換を実行します。ドメイン名、CDN パス、または画像アップロードプレフィックスの更新時に重要です。
-
フラグ:
-
--global: (ブール値)標準的なコンテンツテーブルではなく、すべてのテーブルをスキャンしてリマップします。 -
--regex: (ブール値)FROMパラメータをリテラル文字列ではなく正規表現として評価します。 -
例:
discourse remap "old-domain.com" "new-domain.com"
discourse remap --global "/uploads/default/" "/cdn-uploads/"
4. 選択的データインポートとエクスポート
discourse export_category [CATEGORY_ID]
- 説明: 単一のカテゴリを、すべてのネストされたトピック、投稿、および参加ユーザーのプロファイルを含めて、JSON アーカイブファイルにシリアライズします。
discourse import_category [FILE_PATH]
- 説明:
export_categoryによって作成されたアーカイブを読み取り、カテゴリデータをターゲットインスタンスにマージします。
discourse export_topics [TOPIC_IDS...]
- 説明: 1 つ以上のスペース区切りのトピック ID を受け取り、トピック、投稿、および関連するユーザーアカウントをエクスポートします。
- 例:
discourse export_topics 102 105 210
discourse import_topics [FILE_PATH]
- 説明:
export_topicsによって作成された JSON アーカイブを宛先の Discourse インスタンスにインポートします。