dbx/docs/content/docs/cloud-sync.cn.mdx

131 lines
6.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: DBX 配置云同步
description: 使用 WebDAV、GitHub Gist 或 Gitee 代码片段同步 DBX 连接、设置和保存的 SQL。
---
<Callout type="info">
DBX 可以把连接配置、界面设置和保存的 SQL 组成一个快照,上传到 WebDAV 或私有代码片段,并在另一台设备恢复。
</Callout>
<Callout type="warn">云同步备份的是 DBX 配置,不会读取或备份连接中的业务数据库。表结构和数据请使用 [数据库导出](/cn/docs/database-export)Desktop 定时 MySQL/PostgreSQL 备份请使用 [数据库备份](/cn/docs/database-backup)。</Callout>
在 **设置 → 同步** 中选择同步方式:
- **WebDAV**:适合已有 NAS、Nextcloud、坚果云或其他 WebDAV 服务的用户,支持定时自动上传。
- **GitHub / Gitee 代码片段**:不需要自己维护服务器,通过私有 Gist 或私有代码片段保存快照。目前需要手动上传和下载。
## 同步哪些内容
| 项目 | 默认行为 |
| --- | --- |
| 数据库连接及普通连接参数 | 同步 |
| 侧边栏布局、固定节点 | 同步 |
| 保存的 SQL 库 | 同步 |
| 桌面和编辑器设置 | 同步 |
| 数据库密码、SSH 密码、代理密码、HTTP 隧道 Token、连接串、AI API Key | 默认不同步;可以选择加密后同步 |
| JDBC 驱动、插件和本地文件 | 不同步 |
<Callout type="warn">
下载会用远端快照替换本地连接元信息和保存的 SQL。恢复前请确认代码片段 ID 或 WebDAV 路径正确。
</Callout>
## GitHub Gist
### 创建访问令牌
推荐使用 GitHub **Fine-grained personal access token**
[打开 GitHub Fine-grained token 创建页面](https://github.com/settings/personal-access-tokens/new)
<Steps>
<Step>### 打开令牌设置 登录 GitHub进入 **Settings → Developer settings → Personal access tokens → Fine-grained tokens**。</Step>
<Step>### 创建令牌 点击 **Generate new token**,设置名称和有效期。</Step>
<Step>### 设置权限 在 **Account permissions** 中找到 **Gists**,选择 **Read and write**。不需要授予仓库权限。</Step>
<Step>### 保存令牌 创建后立即复制令牌。GitHub 只会完整显示一次。</Step>
</Steps>
也可以使用 Classic token但只应勾选 `gist` scope不要授予无关权限。
### 首次上传
<Steps>
<Step>### 选择平台 打开 **设置 → 同步 → GitHub / Gitee**,平台选择 **GitHub Gist**。</Step>
<Step>### 填写令牌 将访问令牌粘贴到 **访问令牌**。建议勾选 **加密保存在本机**。</Step>
<Step>### 创建 Gist 将 **代码片段 ID** 留空,点击 **上传**。DBX 会创建私有 Gist并自动保存返回的 ID。</Step>
</Steps>
DBX 会在 Gist 中保存一个经过**代码片段加密密码**加密的 `dbx-sync.json` 文件。该密码保护完整快照片段链接本身不会暴露连接信息、SQL 或设置;历史明文片段仍可下载一次以便迁移。
<Callout type="warn">
旧版本创建的明文片段不能安全地原地迁移:更新同一个 Gist 不会删除历史修订。请使用 **迁移旧版代码片段** 操作。DBX 会先将已有的远端快照加密写入新片段并保存新 ID然后重新读取旧片段后才删除它如果另一台设备已更新旧内容则停止自动删除并提示手动清理。若旧快照包含已加密的敏感信息请输入其原敏感信息同步密码以完成删除前验证。请轮换旧片段中可能已经暴露的凭据。
</Callout>
### 在另一台设备恢复
1. 打开该私有 Gist从地址栏复制 ID。地址通常类似 `https://gist.github.com/<实际用户名>/<gist-id>`,最后一段就是 ID。也可以直接访问 `https://gist.github.com/<gist-id>`GitHub 会跳转到包含实际用户名的地址。
2. 在新设备填写相同的 GitHub 令牌和 Gist ID。
3. 点击 **测试**,确认令牌和 ID 可访问。
4. 点击 **下载** 并确认恢复。
## Gitee 代码片段
### 创建私人令牌
[打开 Gitee 私人令牌页面](https://gitee.com/profile/personal_access_tokens)
<Steps>
<Step>### 打开私人令牌页面 登录 Gitee进入 **设置 → 私人令牌**。</Step>
<Step>### 生成新令牌 点击 **生成新令牌**,填写描述。</Step>
<Step>### 设置权限 只勾选代码片段(`gists`)相关权限。如果界面只提供合并权限,选择能够读写代码片段的最小权限。</Step>
<Step>### 保存令牌 生成后立即复制令牌,并存放在密码管理器中。</Step>
</Steps>
### 上传与恢复
1. 在 **设置 → 同步 → GitHub / Gitee** 中选择 **Gitee 代码片段**。
2. 输入私人令牌。首次上传时将代码片段 ID 留空DBX 会创建私有代码片段并保存 ID。
3. 在其他设备恢复时,填写同一个代码片段 ID然后点击 **下载**。
Gitee 代码片段中同样使用 `dbx-sync.json` 文件。
## 同步密码与敏感信息
GitHub Gist 和 Gitee 代码片段始终使用**代码片段加密密码**加密整个快照。该密码不会上传或保存,也无法找回;它与可选敏感信息的同步密码相互独立。
默认快照不会包含数据库密码等密钥。如果需要在新设备直接恢复密码:
1. 开启 **上传时包含加密敏感信息**。
2. 输入单独的 **敏感信息同步密码**。
3. 上传快照。
4. 在另一台设备开启 **下载时恢复加密敏感信息** 并输入同一密码;保持关闭即可保留本地密码。
同步密码使用 **Argon2id** 派生密钥,并使用 **AES-256-GCM** 加密。访问令牌只会使用设备密钥加密保存在本机,永远不会写入 `dbx-sync.json`。
<Callout type="warn">
两种密码都无法找回。GitHub/Gitee 的加密代码片段没有代码片段加密密码就无法恢复WebDAV 中不含加密敏感信息的快照仍可不使用同步密码恢复。
</Callout>
## WebDAV
填写 WebDAV 服务地址、用户名、应用密码和远端快照路径。默认路径为 `DBX/sync/snapshot.json`。
WebDAV 支持定时自动上传。自动上传只在 DBX 运行期间执行;下载始终需要手动确认,避免远端快照意外覆盖本地数据。
## 常见问题
### HTTP 401 或 403
令牌无效、已过期,或没有代码片段读写权限。重新创建最小权限令牌后再测试。
### HTTP 404
代码片段 ID 不正确,或者当前令牌无权访问该私有代码片段。
### 首次上传后在哪里找 ID
DBX 会自动保存 ID。也可以在 GitHub Gist 或 Gitee 代码片段页面的地址栏中查看。
### 多台设备可以同时自动同步吗
代码片段同步目前只支持手动上传和下载,不会自动合并两台设备上的修改。上传前建议先下载最新快照,避免覆盖另一台设备刚上传的版本。