2

Dexie中,当您需要升级模式或表架构时,您使用db.version(X)方法。

然后库将检查用户的浏览器是否缓存了以前的版本并执行适当的升级步骤。

但我找不到如何手动读取当前用户的数据库版本。

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

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

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

但是有没有办法读取用户的确切版本?

它可能对调试有用!

4

2 回答 2

5

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

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

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

于 2017-06-06T15:40:39.270 回答
2

在 Dexie 版本 3+ 中。您可以使用:

  • Dexie.verno: 获取dexie版本。dexie 版本是注册版本中的最高值。
  • Dexie.idbdb.version: 获取本机版本的IndexedDB. 它是 的Dexie.verno倍数10。有关更多技术说明,请参见此处
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
});
于 2021-02-12T15:23:32.787 回答