如题,升级版本号的时候 createObjectStore报错,因为表已经创建过了,索引也是创建表的时候创建的
怎么才能在数据库版本升级的时候给旧表增加新的索引??
如题,升级版本号的时候 createObjectStore报错,因为表已经创建过了,索引也是创建表的时候创建的
怎么才能在数据库版本升级的时候给旧表增加新的索引??
request.onupgradeneeded = function(event) {
var db = event.target.result;
var upgradeTransaction = event.target.transaction;
var objectStore;
if (!db.objectStoreNames.contains("my-store")) {
objectStore = db.createObjectStore("my-store");
} else {
objectStore = upgradeTransaction.objectStore('my-store');
}
if (!objectStore.indexNames.contains("my-index")) {
objectStore.createIndex("my-index", "status", { unique: false });
}
};
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
你需要创建新的对象仓库,或删除不再需要的上一版本中的对象仓库。如果你需要修改一个已存在的对象仓库(例如要修改 keyPath),你必须先删除原先的对象仓库然后使用新的设置创建。(注意,这样会丢失对象仓库里的数据,如果你需要保存这些信息,你要在数据库版本更新前读取出来并保存在别处)。