添加新表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())
上面一行将删除数据库,然后重新创建它。
也请注意我想在数据库中添加一个新表,并且不会在已存在的表中进行更改,因为您可以看到版本1中没有test2表。这样我们就增加了版本? –