`title: IndexedDB 跨版本兼容读取与数据修复``categories: Web 开发/前端/数据管理``keywords: IndexedDB,版本兼容,数据修复,迁移,onupgradeneeded``description: 设计跨版本的读取与数据修复策略,在 `onupgradeneeded` 之外通过惰性修复与校验保障旧数据可用并逐步演进。`惰性修复async function lazyFix(db, id, fix) { return new Promise((resolve, reject) => { const tx = db.transaction('items', 'readwrite'); const s = tx.objectStore('items'); const r = s.get(id); r.onsuccess = () => { const v = r.result; s.put(fix(v)); }; tx.oncomplete = () => resolve(); tx.onerror = () => reject(tx.error); }); } 校验读取时进行 Schema 校验与补齐字段,记录已修复标记。

发表评论 取消回复