fixed # 修复迁移数据库失败的BUG

This commit is contained in:
2026-10-20 15:31:15 +08:00
parent 9e3fa69219
commit 024541bea2
11 changed files with 464 additions and 120 deletions
+9 -9
View File
@@ -28,16 +28,16 @@
## 数据目录
默认路径改为宿主 `DATA_PATH / farm_db`。为保持数据连续,数据库文件名
`farm-preview.sqlite3`、日志文件名和 deployment 标识不变。
默认路径为宿主 `DATA_PATH / farm_db`,新版数据库名为 `farm.sqlite3`。
日志文件名和 deployment 标识保持不变。不再自动移动 `farm_preview`
目录,也不再因两个目录同时存在而阻止启动。
更新插件后下次启动时,若默认旧目录 `farm_preview` 中存在本项目 SQLite,
且 `farm_db` 不存在,会把整个旧目录重命名为 `farm_db`,同时保留日志和
SQLite 附属文件。迁移在打开数据库前进行,成功后记录迁移日志。
同目录旧版 `farm.db` 按用户在首次使用指令时迁移。用户永久绑定首次请求
的 deployment、机器人 ID 和平台,不跨身份重复导入;转换规则、失败处理
和不支持字段的保留方式见 [旧数据迁移](05-migration.md)。
若两个目录同时存在,启动失败并提示明确选择数据目录,禁止覆盖或默默
创建空账户。文件被占用导致重命名失败时同样终止启动;应停止旧实例再启动。
原有显式 `farm_preview_data_dir` 配置继续生效;该配置用于自定义路径,
不会被自动移动。若显式配置仍指向 `farm_preview`,需自行更改该路径。
原有显式 `farm_preview_data_dir` 配置继续生效。仅从选定目录读取旧版
`farm.db`;不会搜索其他目录。未发布预览版的 `farm-preview.sqlite3`
不自动改名或导入,预览数据由开发者手动处理。
本轮只修改开发源并进行隔离测试;没有移动正在使用的宿主数据或重启机器人。