indexeddb更新版本的问题

indexeddb在更新版本的时候怎么给旧表添加或者删除索引?
查了很多资料,关于这块,都是只提了一句:只能在onupgradeneeded里进行修改。但是怎么修改谁也没说。
onupgradeneeded里创建新的表的时候是不需要事务的,直接createObjectStore就可以,返回的对象可以继续创建索引。
但是想要获取已经创建的数据库,需要使用事务,但是在onupgradeneeded中,事务是无效的,数据库版本正在升级,会报错。
然后就开始死循环了,升级的时候不能获取旧的表,升级完毕能获取表的时候又不让添加索引。那这索引就是一次性的?创建完成后就不能动了?

阅读 3.9k
3 个回答
升级的时候不能获取旧的表,升级完毕能获取表的时候又不让添加索引

当然是在升级时就完成添加索引。

现在的问题是“旧数据需要添加索引”。

确定旧数据不会在升级后自动添加索引的话,那就只有更新旧数据了。

我也遇到了这个问题,解决了吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题