添加新表dexie到daynamically,IndexedDB的

添加新表dexie到daynamically,IndexedDB的

问题描述:

我定义的一个集合,没有任何问题如下:添加新表dexie到daynamically,IndexedDB的

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

第二种选择是正确的。但保留版本1的代码,as described in the docs。但是,如果您已经测试过使用版本2或版本3,则很容易出错。您永远不能在同一个客户端上更改相同的版本。

如果您的第二个选择失败,请在控制台日志中查找解释消息。可能是您已经在测试时添加了大于2的版本。如果是这样,你可能需要或者增加版本比已用空间的高的值,或做

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

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

+0

也请注意我想在数据库中添加一个新表,并且不会在已存在的表中进行更改,因为您可以看到版本1中没有test2表。这样我们就增加了版本? –