04g WebDAV 远程同步流程¶
状态:✅ 已实现
1. 操作入口¶
方式 |
入口 |
|---|---|
CLI |
|
自动 |
应用启动时( |
远程同步基于坚果云 WebDAV,将本地数据库备份到云端或从云端拉取。
2. 涉及配置¶
配置文件 |
关键字段 |
说明 |
|---|---|---|
|
WebDAV 端点/远程路径 |
同步参数 |
|
|
认证 |
3. 涉及代码文件¶
层 |
文件 |
职责 |
|---|---|---|
CLI |
|
同步命令(push/pull/status) |
Main |
|
从 .env 加载配置 |
Main |
|
初始化时可选 |
Service |
|
数据源适配(含 WebDAV) |
4. 逐步流程¶
4.1 配置 WebDAV¶
在 .env 中填写:
NUTSTORE_WEBDAV_USER=your_email@example.com
NUTSTORE_WEBDAV_TOKEN=your_token
若未配置,start.sh 阶段0.8 会提示"WebDAV用户未配置(将跳过远程同步)"。
4.2 推送(backup)¶
certflow db-sync push
将本地数据库上传到坚果云 WebDAV 远程路径。
4.3 拉取(restore)¶
certflow db-sync pull
从云端下载数据库到本地(注意:会覆盖本地,建议先 db-backup)。
4.4 查看状态¶
certflow db-sync status
显示本地/远程数据库大小、最后同步时间。
4.5 启动自动同步¶
main.py 的 DatabaseManager.init_db(sync_from_webdav=...) 在启动时根据配置拉取远程数据库(若配置)。
5. 数据库备份(独立命令)¶
certflow db-backup --out ./backup/certflow_20260804.db
对应四库模型(A/B/C/D)中的主库 A。
6. 数据库重置¶
certflow db-reset --force # 清空重建
certflow db-reset --baseline <path> --force # 从基线库重建
start.sh 阶段10 也基于此实现调试库 B 的重置。
7. 常见问题¶
同步超时:检查网络/坚果云令牌是否过期
跳过同步:未配置
NUTSTORE_WEBDAV_*时自动跳过冲突:push/pull 不做三方合并,先
db-backup再操作