在dexie,indexeddb中添加新表到daynamically

时间:2017-10-07 06:18:34

标签: indexeddb dexie

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

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 个答案:

答案 0 :(得分:0)

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

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

for src, dst in zip(ws['E:Y'], ws['F:Z']):
    dst.value = src.value

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