添加新表到daynamically在dexie,indexeddb

z3yyvxxp  于 2023-05-27  发布在  IndexedDB
关注(0)|答案(1)|浏览(262)

我定义了一个没有任何问题的集合,如下所示:

db = new Dexie('db');
db.version(1).stores(
    {test : '++id,title'}
);

但是当我通过下面两种方法向'db'数据库添加新表时,两种方法都失败,并且不会发生更改。

//without version change
db = new Dexie('db');
db.version(1).stores(
    {test2 : '++id,title'}
);

//with version change
db = new Dexie('db');
db.version(2).stores(
    {test2 : '++id,title'}
);
i7uaboj4

i7uaboj41#

第二种选择是正确的。但也要保留版本1的代码,如文档中所述。但是,如果您已经测试过使用版本2或版本3,则很容易出错。您永远不能在同一客户端上更改相同的版本。
如果第二个替代方案失败,请检查控制台日志中的解释消息。这可能是因为您在测试时已经添加了一个高于2的版本。如果是这样,您可能需要将版本增加到比已使用的值更高的值,或者

Dexie.delete('db').then(()=>db.open())

上面的一行将删除数据库,然后重新创建它。

相关问题