在Dexie中,当您需要升级有关架构或表架构的内容时,可以使用db.version(X)
方法。
然后,库将检查用户的浏览器是否已缓存先前版本,并执行相应的升级步骤。
但是我找不到如何手动阅读当前用户的 db版本。
因此,例如,如果写这个故意破坏代码:
//删除此代码 db.version(1).stores(/* my schema */)
db.version(2).stores(/* my schema */)
该库会礼貌地抛出错误,说明用户当前拥有的版本(显然,1
)没有架构。
但有没有办法阅读用户拥有的完全版本?
它可以用于调试!
答案 0 :(得分:2)
如果您只想检查数据库,可以跳过整个version()
。例如,我可以使用此代码打印我的数据库的版本号。
new Dexie("myDB").open().then((db) => console.log(db.verno))
请注意(如文档中所述),Dexie将通过.version()
设置的版本号乘以10,因此如果您在浏览器的调试器中检查数据库,您将看到一个数字是您获得的数字的10倍使用verno
field。
答案 1 :(得分:2)
在 Dexie 版本 3+ 中。您可以使用:
Dexie.verno
:获取 dexie 版本。 dexie 版本是注册版本的最高值。Dexie.idbdb.version
:获取 IndexedDB
的原生版本。它是 Dexie.verno
乘以 10
。有关更多技术说明,请参阅 here。const db = new Dexie("AppDB");
db.version(1);
db.version(2);
db.version(5);
db.open();
db.on("ready", () => {
console.log(db.verno); // 5
console.log(db.idbdb.version); // 50
});