fix(web3): 迁移函数不再 DROP TABLE,避免清空 field/rule 数据
之前 _migrate_field_unique / _migrate_connection_preset_unique 用 `sqlite_master WHERE type='index' AND name='uq_xxx'` 检测 UNIQUE 约束, 但 SQLite 把 table-level UNIQUE 约束内联到 CREATE TABLE、不会单独建 type='index' 条目(实际生效的是隐式 sqlite_autoindex_<table>_<n>), 导致每次启动都误判「缺 UNIQUE」→ DROP TABLE field → CASCADE 清 rule → 重建空表 → 用户配的字段+规则全部丢失(log 里连续 8 次 WARNING 证据)。 修法:检测用 pragma_index_list 或不限 type 的 sqlite_master WHERE name=...; 补建用 CREATE UNIQUE INDEX IF NOT EXISTS(幂等,与 autoindex 不冲突)。 不再 DROP TABLE。⚠ ️ 修复前的所有 task 字段+规则数据已物理丢失,task 表本身保留; 用户需要重新点编辑配置字段和规则。
Showing
Please register or sign in to comment