モデルを変更するたびにマイグレーションで怒られるのに疲れたのでアプリを起動するたびにRealmのデータベースをドロップすることにした。
アプリ起動時に以下のコードを呼び出してあげればOK。
// Drop database
let path = Realm.Configuration.defaultConfiguration.path!
if NSFileManager.defaultManager().fileExistsAtPath(path) {
try! NSFileManager.defaultManager().removeItemAtPath(path)
}
追記
Realm1.0になってAPIが変更になり上記のコードは使えなくなってた。Realm公式ドキュメントによると以下のようにすれば良いみたい。
let realmURL = Realm.Configuration.defaultConfiguration.fileURL!
let realmURLs = [
realmURL,
realmURL.URLByAppendingPathExtension("lock"),
realmURL.URLByAppendingPathExtension("log_a"),
realmURL.URLByAppendingPathExtension("log_b"),
realmURL.URLByAppendingPathExtension("note")
]
let manager = NSFileManager.defaultManager()
for URL in realmURLs {
do {
try manager.removeItemAtURL(URL)
} catch {
// handle error
}
}
参考: https://realm.io/jp/docs/swift/latest/#realm-7
参考
- Clear complete Realm Database