# Backup discourse from the command line

**URL:** <https://meta.discourse.org/t/backup-discourse-from-the-command-line/64364>\
**Category:** Self-Hosting\
**Tags:** backups, how-to\
**Created:** [6월 12, 2017, 3:59오후 UTC](https://meta.discourse.org/t/backup-discourse-from-the-command-line/64364 "2017-06-12T15:59:45Z")\
**Posts on this page:** 1\
**Showing post:** 43

<div class="post-metadata">

**Author:** ![dennisjbr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dennisjbr/32/444916_2.png) [@dennisjbr](https://meta.discourse.org/u/dennisjbr)\
**Post date:** [7월 23, 2026, 12:28오전 UTC](https://meta.discourse.org/t/backup-discourse-from-the-command-line/64364/43 "2026-07-23T00:28:56Z")

</div>

일부 AI의 도움으로 **discourse** 명령어의 하위 명령어에 대한 포괄적인 목록을 정리했습니다.  
`discourse` CLI(`script/discourse`를 통해 Thor gem으로 구현됨)는 **백업 및 복구** , **사이트 관리 및 모드** , **데이터베이스 유틸리티** , \*\*데이터 마이그레이션(가져오기/내보내기)\*\*으로 분류된 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`가 설정된 경우 무시됨).

- **예시:**

```bash
discourse backup
discourse backup --sql-only

```

#### `discourse restore [FILENAME]`

- **설명:** `/var/www/discourse/public/backups/default`에 위치한 로컬 `.tar.gz` 아카이브에서 포럼 백업을 복구합니다.
- **선행 조건:** 먼저 `discourse enable_restore`를 실행해야 합니다.
- **예시:**

```bash
discourse restore discourse-2026-07-22-120000-v2026xxxx.tar.gz

```

#### `discourse enable_restore` & `discourse disable_restore`

- **설명:** 콘솔/웹 기반 복구 작업을 허용하거나 제한하는 애플리케이션 플래그를 전환합니다.
- **사용 순서:**

```bash
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` 매개변수를 리터럴 문자열이 아닌 정규 표현식으로 평가합니다.

- **예시:**

```bash
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...]`

- **설명:** 하나 이상의 공백으로 구분된 토픽 ID를 받아 토픽, 게시물 및 관련 사용자 계정을 내보냅니다.
- **예시:**

```bash
discourse export_topics 102 105 210

```

#### `discourse import_topics [FILE_PATH]`

- **설명:** `export_topics`로 생성된 JSON 아카이브를 대상 Discourse 인스턴스로 가져옵니다.

---

_[View the full topic](https://meta.discourse.org/t/backup-discourse-from-the-command-line/64364)._
