【问题标题】:Dexie: How to handle removing non-indexed props from database?Dexie:如何处理从数据库中删除非索引道具?
【发布时间】:2017-03-15 01:07:20
【问题描述】:

假设我有以下索引值架构:db.version(1).stores({friends: "++id,name"});

此外,我的朋友对象有一个名为phoneNumber 的非索引道具,因此在IndexedDB 中每一行都有id, name, phoneNumber

如果我稍后决定不再需要 phoneNumber,那么从现有行中删除 phoneNumber 的正确方法是什么?是否应该在upgrade 方法内完成?

【问题讨论】:

    标签: indexeddb dexie


    【解决方案1】:

    我对dexie了解不多,但一般来说,我不会使用升级的方式来进行这个改动。升级数据库通常是为模式更改而保留的。更改非索引、非键属性不是架构更改。

    删除 phoneNumber 属性的正确方法是遍历朋友对象存储区中的所有朋友,读取每个朋友对象,删除 phoneNumber 属性,然后将朋友对象写回存储区。

    您可以将此更改作为一个函数,并通过升级将其添加到一组迁移函数调用中,但这只是主观的。如果您的应用程序被编码为您需要更改数据库版本来执行此操作,我只会建议您这样做。但在这里听起来更像是您的应用程序本身的版本更改。这不会影响数据库的版本。因此,这应该与您的应用版本更改处理程序的迁移功能相关联。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-12
      • 2018-05-07
      • 1970-01-01
      • 2012-09-25
      • 2013-01-23
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      相关资源
      最近更新 更多