在dexie中动态添加新表,IndexedDb

问题描述 投票:0回答:1

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

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'}
); 
indexeddb dexie
1个回答
0
投票

第二种选择是正确的。但也要保留版本 1 的代码,如文档中所述。但是,如果您已经测试过使用版本 2 或版本 3,则很容易出错。您永远无法在同一客户端上更改同一版本。

如果您的第二种选择失败,请在控制台日志中查看解释消息。您可能在测试时已经添加了 2 以上的版本。如果是这样,您可能需要将版本增加到高于已使用的值,或者执行

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

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

© www.soinside.com 2019 - 2024. All rights reserved.