Ich entwickle eine App so etwas wie Telefonkontakte. Und ich muss eine Datenbank mit allen Daten zur Verfügung stellen, um sie offline in meiner App zu verwenden.Wie kopiere ich die gebündelte Realm-Datenbank mit einigen Daten, um in meiner App darauf zuzugreifen?
bereitete ich eine Datenbank-Datei in meinem OSX-Anwendung, die ich speziell für diese Aufgabe schrieb (gibt es einige echte Client-Reich-Dateien? Erstellen) Und ich diese Datenbank in meinem iOS-App verwenden. Ich kopiere einfach die Datei aus dem Bundle und stelle eine Verbindung mit Realm.Configuration her. Alles funktioniert gut.
Jetzt versuche ich, das gleiche für Android zu tun.
- Ich legte die Datei in
raw/databasefile.realm
. - Implementiert Funktion
copyBundledRealmFile
wie in der Migration Demo-Anwendung auf Repo GitHub.
Dann RealmConfiguration erstellen:
RealmConfiguration config = new RealmConfiguration.Builder(this)
.name("databasefile.realm")
.deleteRealmIfMigrationNeeded()
.build();
und init Reich:
realm = Realm.getInstance(config);
Danach sehe ich, dass der Bereich leer. Warum?
Vielleicht war der 'deleteRealmIfMigration' Flag ausgelöst, der die Realm-Datei zurückgesetzt. Haben Sie versucht, diese Konfiguration nicht zu aktivieren? –
@ChristianMelchior es heißt „RealmMigration zur Verfügung gestellt werden muss“. Aber es gibt keine alte Datenbank auf dem Gerät. Warum muß ich Migration? – BUDDAx2
wegen Ihrer RealmObjects Erklärung anders sein könnte, was Sie haben, wenn die DB erstellen. Können Sie bitte gebaut die Konfiguration mit einer leeren Migration, entfernen Sie die 'deleteRealmIfMigrationNeeded', dann sehen Sie, was ist die Migration benötigt Ausnahme Nachricht? Es wird sagen, was ist der Unterschied zwischen den RealmObjects, die Sie definiert und denen in der Realm-Datei. – beeender