> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# 用 CLI 备份和恢复 snapshot

> 用 squarecloud app snapshot 和 squarecloud db snapshot 创建、下载、列出并恢复 Square Cloud 应用和数据库的 snapshot。

snapshot 是应用文件或数据库数据的备份。`squarecloud app snapshot` 和 `squarecloud db snapshot` 的用法相同：`create` 创建 snapshot，`list` 列出已保存的 snapshot，`restore` 恢复其中一个。

对于 `create`，应用 ID 是可选的：参见 [CLI 如何找到你的应用](/zh/cli-reference/quickstart#cli-如何找到你的应用)。数据库 ID 也是可选的：不传时，CLI 会打开你的数据库选择器。

## `squarecloud app snapshot create`

```bash 用法 theme={"system"}
squarecloud app snapshot create [appID] [--download]
```

| 标志 | 说明 |
| - | - |
| `--download` | 把 snapshot 以 `Square Cloud - Snapshot <date> <time>.zip` 的名称保存到当前文件夹，而不是打印下载链接。 |

```bash theme={"system"}
squarecloud app snapshot create --download
```

```bash 输出 theme={"system"}
✓ Your snapshot was created. Download it at:
  <download link>
```

对于大型应用，命令返回时 snapshot 可能仍在生成：CLI 会说明这一点，几分钟后该 snapshot 就会出现在 `snapshot list` 中。下载的文件会以仅你可读的方式保存（0600 权限），`--download` 失败时会删除不完整的文件。

## `squarecloud app snapshot list`

```bash 用法 theme={"system"}
squarecloud app snapshot list [snapshotID] [--json]
```

不带参数时，你的应用的每个 snapshot 各占一行，显示 snapshot ID、版本数量、总大小和最后更新时间。较新的 snapshot ID 以应用 ID 开头，并以 `_javascript_manual` 之类的标签结尾。

传入列表中的某个 snapshot ID，即可查看它的各个版本及其**版本 ID**，`restore` 需要用到这些 ID：

```bash theme={"system"}
squarecloud app snapshot list <snapshotID>
# 每个版本一行：snapshot ID、版本 ID、大小、最后更新时间。
```

使用 `--json` 时，输出保留相同的筛选。列出 snapshot 需要有效的套餐。

## `squarecloud app snapshot restore`

```bash 用法 theme={"system"}
squarecloud app snapshot restore <appID> <snapshotID> <versionID> [-y]
```

| 标志 | 说明 |
| - | - |
| `-y`, `--yes` | 跳过确认提示。 |

用某个 snapshot 版本替换应用的当前文件。`<snapshotID>` 和 `<versionID>` 请从 [`app snapshot list`](#squarecloud-app-snapshot-list) 中获取。执行前会先要求 `y/N` 确认。

```bash 输出 theme={"system"}
✓ Restore started successfully
```

## `squarecloud db snapshot create`

```bash 用法 theme={"system"}
squarecloud db snapshot create [dbID] [--download]
```

| 标志 | 说明 |
| - | - |
| `--download` | 把 snapshot 以 `Square Cloud - DB Snapshot <date> <time>.zip` 的名称保存到当前文件夹，而不是打印下载链接。 |

与 `app snapshot create` 的用法相同，作用对象是数据库。

## `squarecloud db snapshot list`

```bash 用法 theme={"system"}
squarecloud db snapshot list [snapshotID] [--json]
```

不带参数时，你的数据库的每个 snapshot 各占一行。传入 snapshot ID 时，每个版本一行，并显示 `restore` 所需的版本 ID。

## `squarecloud db snapshot restore`

```bash 用法 theme={"system"}
squarecloud db snapshot restore <dbID> <snapshotID> <versionID> [-y]
```

| 标志 | 说明 |
| - | - |
| `-y`, `--yes` | 跳过确认提示。 |

在 `y/N` 确认后，用某个 snapshot 版本替换数据库的当前数据。

## 相关内容

| 命令 | API | JavaScript SDK | VS Code |
| - | - | - | - |
| `app snapshot create` | [`POST .../snapshots`](/zh/api-reference/endpoint/apps/snapshots/create) | [`api.apps.snapshots.create()`](/zh/sdks/js/snapshots) | [下载快照](/zh/vscode-extension/features#应用) |
| `app snapshot list` | [`GET /v2/users/snapshots`](/zh/api-reference/endpoint/users/snapshots) | [`api.account.snapshots()`](/zh/sdks/js/client) | [恢复快照](/zh/vscode-extension/features#应用) |
| `app snapshot restore` | [`POST .../snapshots/restore`](/zh/api-reference/endpoint/apps/snapshots/restore) | [`api.apps.snapshots.restore()`](/zh/sdks/js/snapshots) | [恢复快照](/zh/vscode-extension/features#应用) |
| `db snapshot create` | [`POST .../snapshots`](/zh/api-reference/endpoint/databases/snapshots/create) | [`api.databases.snapshots.create()`](/zh/sdks/js/snapshots) | |
| `db snapshot list` | [`GET /v2/users/snapshots`](/zh/api-reference/endpoint/users/snapshots) | [`api.account.snapshots()`](/zh/sdks/js/client) | |
| `db snapshot restore` | [`POST .../snapshots/restore`](/zh/api-reference/endpoint/databases/snapshots/restore) | [`api.databases.snapshots.restore()`](/zh/sdks/js/snapshots) | |
