如何在dexie中读取当前的db版本号?

时间:2017-05-19 14:11:37

标签: javascript caching indexeddb dexie

Dexie中,当您需要升级有关架构或表架构的内容时,可以使用db.version(X)方法。

然后,库将检查用户的浏览器是否已缓存先前版本,并执行相应的升级步骤。

但是我找不到如何手动阅读当前用户的 db版本

因此,例如,如果写这个故意破坏代码:

db.version(1).stores(/* my schema */) //删除此代码
db.version(2).stores(/* my schema */)

该库会礼貌地抛出错误,说明用户当前拥有的版本(显然,1)没有架构。

但有没有办法阅读用户拥有的完全版本?

它可以用于调试!

2 个答案:

答案 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
});