现在我有两种数据模型:
class Habit: Object{
...
...
dynamic var owner: HabitList?
}
class HabitList: Object{
dynamic var habits = List<Habit>()
}
我想要删除HabitList
课程的owner
课程和Habit
课程,我不确定我是否理解如何使用delete
和deleteData
什么是MigrationObject
。我需要使用migration.enumerate
吗?
答案 0 :(得分:2)
(免责声明:我为Realm工作)
如果要完全删除HabitList
和owner
对象中的数据,那么您需要做的事情很少。 :)
首先,只需删除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的更多信息。如果您需要进一步澄清,请告诉我们!