Dexie - 使用新字段

时间:2018-01-30 15:46:04

标签: angular dexie

我正在尝试使用Dexie修改Angular2应用程序中现有表的表结构。

应用程序已经强制执行表的第2版,现在我必须使用两个新信息扩展mdValuta表:f3,f4

这是代码:

super('WEB_IndexedDB');
this.version(1).stores({
  mdValuta:'codudm,numdec,numdecpre'
}); 
this.version(2).stores({
  mdValuta:'codudm,numdec,numdecpre,f1,f2'
});
this.version(3).stores({      
  mdValuta:'codudm,numdec,numdecpre,f1,f2,f3,f4'
});

我不知道为什么,当我执行应用程序时,我在控制台中收到此错误,并且没有对mdValuta表进行任何更改。

  

OpenFailedError:ConstraintError中的一个变异操作   事务失败,因为不满足约束。对于   例如,对象存储或索引等对象已经存在   正在尝试创建一个新的。

我缺少什么?

1 个答案:

答案 0 :(得分:1)

问题可能出在 super('WEB_IndexedDB')函数中... 以下代码有效,创建了版本3表:

var db = new Dexie ('WEB_IndexedDB');
db.version(1).stores({
  mdValuta:'codudm,numdec,numdecpre'
}); 
db.version(2).stores({
  mdValuta:'codudm,numdec,numdecpre,f1,f2'
});
db.version(3).stores({      
  mdValuta:'codudm,numdec,numdecpre,f1,f2,f3,f4'
});
db.open();