Tak, musisz wykonać kopię pliku Realm za pomocą nowego klucza szyfrowania. Metoda nazywa writeEncryptedCopyTo()
: https://realm.io/docs/java/latest/api/io/realm/Realm.html#writeEncryptedCopyTo-java.io.File-byte:A-
coś jak poniżej powinno działać:
RealmConfiguration config1 = new RealmConfiguration.Builder(context)
.name("old-name")
.encryptionKey(getOldKey())
.build()
Realm realm = Realm.getInstance(config1);
realm.writeEncryptedCopyTo(new File(context.getFilesDir(), "new-name"), getNewKey());
realm.close();
RealmConfiguration config2 = new RealmConfiguration.Builder(context)
.name("new-name")
.encryptionKey(getNewKey())
.build()
chciałbym zachować wymienić samo moja baza, więc piszę skopiować do pliku tymczasowego, a następnie usunąć oryginalny plik, a następnie zmień nazwę pliku tmp. Jednak Realm używa pamięci podręcznej konfiguracji na podstawie ścieżki. Czy istnieje sposób na zresetowanie tego? – Niko
Moja bad, nie zamykała instancji realm wystarczająco wcześnie, aby ją usunąć :) – Niko