ios


Deleting Data instead of using Migration


Deleting Data instead of using Migration
In my code I added a property to my realm class. Is there a way to delete the data and get rid off my whole database instead of using migration?
I'm still testing that's why I probably won't need Migration for now.
Please help me, I'm really struggling with using Migration
Thank you
if you are only testing locally you can delete the app and re-install. If you already have your app on the App Store and want to prepare migrations for users you can have a look at the Migrations Sample App from Realm.
Try this on your AppDelegate:
import UIKit
import RealmSwift
// Old data models
/* V0
class Person: Object {
dynamic var firstName = ""
dynamic var lastName = ""
dynamic var age = 0
}
*/
// V1
class Person: Object {
dynamic var fullName = "" // combine firstName and lastName into single field
dynamic var age = 0
}
class Person: Object {
dynamic var fullName = ""
dynamic var age = 0
}
func bundleURL(_ name: String) -> URL? {
return Bundle.main.url(forResource: name, withExtension: "realm")
}
#UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = UIViewController()
window?.makeKeyAndVisible()
// copy over old data files for migration
let defaultURL = Realm.Configuration.defaultConfiguration.fileURL!
let defaultParentURL = defaultURL.deletingLastPathComponent()
if let v0URL = bundleURL("default-v0") {
do {
try FileManager.default.removeItem(at: defaultURL)
try FileManager.default.copyItem(at: v0URL, to: defaultURL)
} catch {}
}
// define a migration block
// you can define this inline, but we will reuse this to migrate realm files from multiple versions
// to the most current version of our data model
let migrationBlock: MigrationBlock = { migration, oldSchemaVersion in
if oldSchemaVersion < 1 {
migration.enumerateObjects(ofType: Person.className()) { oldObject, newObject in
if oldSchemaVersion < 1 {
// combine name fields into a single field
let firstName = oldObject!["firstName"] as! String
let lastName = oldObject!["lastName"] as! String
newObject?["fullName"] = "\(firstName) \(lastName)"
}
}
}
print("Migration complete.")
}
Realm.Configuration.defaultConfiguration = Realm.Configuration(schemaVersion: 2, migrationBlock: migrationBlock)
// print out all migrated objects in the default realm
// migration is performed implicitly on Realm access
print("Migrated objects in the default Realm: \(try! Realm().objects(Person.self))")
return true
}
}

Related Links

How to get the closest time to current time from an array of dates ? iOS, Swift 3
Getting the value of a TypeSwitch
Podio SDK - Retrieve multiple image files
How to define a class and module for a view created programmatically in swift
iOS device unable to access an iCloud account crated by another iOS device
current location in mapkit
Using GeoFire queries in Swift does not give useful output
ios fdk-aac pcm to aac sample
How to store critically sensitive information such as secret, key, token, encryptionKey in iOS application
Sirikit disambiguation keeps repeating
How to make the interface for a camera app on the IPhone different than the IPad for the same app?
Swift Error when trying to open other apps from my app | The operation couldn’t be completed. (OSStatus error -10814.)
Not able to set proper UITableView scroll when keyboard is shown and when keyboard resigns
Firebase Fetch data from database
IOS Tab Bar Item Popup Submenu
Getting undefined when I call the props of ReactNative GooglePlacesAutocomplete api on another component

Categories

HOME
graph
odoo-10
performance-testing
ssl-certificate
word-vba
datetime
box
ceph
tcplistener
wso2ei
marketplace
aac
axure
sonata-admin
coreos
scale
deserialization
libpcap
netlify
django-autocomplete-light
nested-set-model
aspdotnetstorefront
physics
iar
launchpad
apscheduler
valueinjecter
coqide
charts.js
magento2.0.2
dokuwiki
server-sent-events
roo
azure-app-service-envrmnt
jackrabbit
angular-xeditable
jsonstore
freerdp
default-browser
ms-jet-ace
azure-cdn
wrk
mrtg
jasmine2.0
typesetting
harvest-scm
shift-reduce-conflict
mailcore2
ckcontainer
file-import
qlpreviewcontroller
enhanced-ecommerce
lidar
dual-table
kinto
linqtocsv
document-ready
dbfit
xirr
cng
crosswalk
julian
multiscreen
sketching
data-science-studio
cvs2git
repaint
datacontractserializer
directcompute
data-quality
wmv
asp.net-apicontroller
hebrew
validform
declspec
blazeds
sshj
external-dependencies
emacs-jedi
scrollpane
visual-assist
geometry-surface
source-highlighting
speaker
google-goggles
square-cube
file-structure
calloc
jsr223
tipsy
consistent-hashing
katta
automapping
gumstix
pinging
utility
non-relational-database
server.transfer

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App