移行を行うこともできますが、defaultRealm()のすべてを削除することをお勧めします。どうすれば簡単にできますか?
realm.deleteObject(object)
.deleteObjectsと共に使用できる唯一の関数です。
私は次のコードを試しました:
方法1
realm.deleteObjects(RLMObject.objectsInRealm(realm, withPredicate: NSPredicate(value: true)))
方法2
realm.deleteObjects(Dog.allObjectsInRealm(realm))
realm.deleteObjects(Person.allObjectsInRealm(realm))
realm.deleteObjects(Goal.allObjectsInRealm(realm))
realm.deleteObjects(Goals.allObjectsInRealm(realm))
どちらも移行例外を防ぐことができません。
deleteAll()
を使用します。
let realm = try! Realm()
try! realm.write {
realm.deleteAll()
}
v0.87. の時点で、 deleteAllObjects
には RLRealm
のメソッドがあり、すべてのオブジェクト。
レルムの世界では物事が進んでいます-誰かがこれに出くわした場合に備えて、設定できるプロパティがあります:
Realm.Configuration.defaultConfiguration.deleteRealmIfMigrationNeeded = true
その後、広告どおりに実行します。 (ところで:上記の構文の多くは、他の方法を試している場合に備えて変更されています)
レルムDBファイルを削除することは、ストレージを移行するのではなく、ストレージ全体を削除することに関する質問であったため、有効な答えだと思います。
簡単なSwift=のコード(Swift 2.1およびRealm 0.96.2の時点):
if let path = Realm.Configuration.defaultConfiguration.path {
try! NSFileManager().removeItemAtPath(path)
}
ストレージのロード時に移行エラーが発生した場合、アプリのDEBUGバージョンでこのコードを使用してから、ストレージを再作成します。開発中にスキーマが大きく変更される可能性があるため、常に移行に煩わされるのは面倒です。