IndexedDB 如何在dexie中读取当前数据库版本号?

pzfprimi  于 2022-12-09  发布在  IndexedDB
关注(0)|答案(2)|浏览(406)

Dexie中,当需要升级模式或表架构时,可以使用db.version(X)方法。
然后,库将检查用户的浏览器是否缓存了以前的版本,并执行相应的升级步骤。
但是我找不到如何手动读取当前用户的 *db版本 *。
例如,如果有目的地编写以下代码:
db.version(1).stores(/* my schema */) *//移除此程式码 *
db.version(2).stores(/* my schema */)
库将礼貌地抛出一个错误,指出用户当前拥有的版本(显然,1)没有模式。
但是,有没有办法读取用户拥有的"确切“版本?
它可能对调试有用!

2eafrhcq

2eafrhcq1#

如果您只想检查数据库,可以跳过整个version()。例如,我可以使用以下代码打印数据库的版本号。

new Dexie("myDB").open().then((db) => console.log(db.verno))

请注意(如文档中所述),Dexie将通过.version()设置的版本号乘以10,因此,如果您在浏览器的调试器中检查数据库,您将看到一个数字,该数字是使用verno field获得的数字的10倍。

8yparm6h

8yparm6h2#

在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
});

相关问题