在迁移期间删除类和对象

时间:2015-08-29 20:39:37

标签: ios realm

现在我有两种数据模型:

class Habit: Object{
     ...
     ...

     dynamic var owner: HabitList?
}

class HabitList: Object{

    dynamic var habits = List<Habit>()
}

我想要删除HabitList课程的owner课程和Habit课程,我不确定我是否理解如何使用deletedeleteData什么是MigrationObject。我需要使用migration.enumerate吗?

1 个答案:

答案 0 :(得分:2)

(免责声明:我为Realm工作)

如果要完全删除HabitListowner对象中的数据,那么您需要做的事情很少。 :)

首先,只需删除owner对象和HabitList类定义,即可将其从项目中删除。之后,从Realm 0.95开始(我们上周发布了。如果你还没有,我建议升级!),有一种新的方法来处理迁移:

let config = Realm.Configuration(
   //You need to increment the version everytime you change your object schema (starts at 0)
   schemaVersion: 1, 
   migrationBlock: { migration, oldSchemaVersion in
      //If you want to preserve any data, you can do it here, otherwise just leave it blank.
   }
)

Realm.Configuration.defaultConfiguration = config

let realm = Realm() //The database will now be migrated!

您需要做的就是创建一个Realm配置对象,设置一个新的模式版本(让Realm知道您已经更改了对象的模式),然后指定一个迁移块(如果您不这样做,可以将其留空)我想保留您已删除的属性中的任何信息,然后将配置对象传递给Realm。然后,Realm将在您下次调用Realm()时使用新架构自动更新您的Realm文件。

有关Realm docs page的更多信息。如果您需要进一步澄清,请告诉我们!