在Dexie.js中检查和添加缺失商店的最佳实践



我只是切换到Dexie.js在我们的Web应用程序中处理IndexedDB。我喜欢它,但我想知道在启动时检查(并自动添加(任何缺失表的最佳方法是什么?本机方式是使用.onupgradeneed,Dexie中是否有类似的东西?

假设我的初始化中有这样的东西:

self.idb = new Dexie("myApp");
self.idb.version(1).stores({
languages: 'id',
stationDatapoints: 'id, stationId, datapointId',
dpTranslations: 'id, l, r',
datapoints: 'id',
stations: 'id',
});
self.idb.open().catch(function (e) {
console.error("Open failed: " + e);
});

这样,一旦我删除其中一个表并重新加载应用程序,在访问相应的表进行查询时就会出错。但是,当我删除整个数据库并重新加载应用程序时,将自动创建所有表。如何自动创建单个缺失表?还是我必须手动检查并添加它们?

这里介绍了它: 数据库版本控制

基本上,你保持你的版本(1(声明不变,并添加一个版本(2(和你应用的更改。只要有安装了旧版本的设备,就保留旧版本。确定所有客户端设备都已升级后,可以删除前面的声明。

最新更新