Sto lavorando a un'applicazione Android in cui eliminerò il dominio prima di copiare i nuovi dati in Realm. C'è un modo in cui posso fare il backup dei dati prima di cancellarlo e ripristinarlo se qualcosa non va usando realm.copyToRealm()?Come eseguire il backup di Realm DB in Android prima di eliminare il file Reame. C'è un modo per ripristinare il file di backup?
7
A
risposta
12
Realm.writeCopyTo
potrebbe essere utile per questo caso. Puoi trovare doc qui.
//Backup
Realm orgRealm = Realm.getInstance(orgConfig);
orgRealm.writeCopyTo(pathToBackup);
orgRealm.close();
//Restore
Realm.deleteRealm(orgConfig);
Realm backupRealm = Realm.getInstance(backupConfig);
backupRealm.writeCopyTo(pathToRestore);
backupRealm.close();
orgRealm = Realm.getInstance(orgConfig);
Ma nel tuo caso, sarebbe molto più semplice e veloce per spostare appena il file Reame ad un posto per il backup, e spostarlo indietro quando si vuole ripristinarla. Per ottenere il percorso del file Reame, provare:
realm.getPath();
6
Questo è il codice di esempio per il backup regno db & ripristino.
public class RealmMigration {
private final static String TAG = RealmMigration.class.getName();
private Context context;
private Realm realm;
public RealmMigration(Context context) {
this.realm = Realm.getInstance(BaseApplication.realmConfiguration);
this.context = context;
}
public void backup() {
File exportRealmFile = null;
File exportRealmPATH = context.getExternalFilesDir(null);
String exportRealmFileName = "default.realm";
Log.d(TAG, "Realm DB Path = "+realm.getPath());
try {
// create a backup file
exportRealmFile = new File(exportRealmPATH, exportRealmFileName);
// if backup file already exists, delete it
exportRealmFile.delete();
// copy current realm to backup file
realm.writeCopyTo(exportRealmFile);
} catch (IOException e) {
e.printStackTrace();
}
String msg = "File exported to Path: "+ context.getExternalFilesDir(null);
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
Log.d(TAG, msg);
realm.close();
}
public void restore() {
//Restore
File exportRealmPATH = context.getExternalFilesDir(null);
String FileName = "default.realm";
String restoreFilePath = context.getExternalFilesDir(null) + "/"+FileName;
Log.d(TAG, "oldFilePath = " + restoreFilePath);
copyBundledRealmFile(restoreFilePath, FileName);
Log.d(TAG, "Data restore is done");
}
private String copyBundledRealmFile(String oldFilePath, String outFileName) {
try {
File file = new File(context.getFilesDir(), outFileName);
Log.d(TAG, "context.getFilesDir() = " + context.getFilesDir().toString());
FileOutputStream outputStream = new FileOutputStream(file);
FileInputStream inputStream = new FileInputStream(new File(oldFilePath));
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buf)) > 0) {
outputStream.write(buf, 0, bytesRead);
}
outputStream.close();
return file.getAbsolutePath();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
private String dbPath(){
return realm.getPath();
}
}
Problemi correlati
- 1. Backup dati Android 2.2: come eseguire il backup di DefaultSharedPreferences?
- 2. File MDF di SQL Server - Come eseguire il backup
- 3. RabbitMQ: come creare e ripristinare il backup
- 4. Come eseguire il backup dell'intera applicazione in Android?
- 5. Come eseguire il backup di un database Solr?
- 6. Come eseguire il backup del database SQLite?
- 7. Come eseguire il backup di un gestore di repository nexus
- 8. Impossibile creare il file di backup (aggiungere! Per sovrascrivere)
- 9. Qual è il modo migliore per effettuare backup automatici?
- 10. Utilizzo di rsync per eseguire il backup di MySQL
- 11. Come eseguire il backup e il ripristino del repository SVN?
- 12. MongoDB: come fare il backup di MongoDB
- 13. Come posso eseguire il backup di un database GridFS MongoDB nel modo più semplice?
- 14. Come eseguire il backup di un database filestream?
- 15. iOS: non eseguire il backup dell'attributo?
- 16. Come ripristinare da un backup mercuriale
- 17. Come eseguire il backup dei repository in Plastic SCM?
- 18. Esiste (un modo automatico) per eseguire il backup dei file CI Hudson?
- 19. Come eseguire il backup di stored procedure in MySQL
- 20. Come si esegue il backup di un file di database sulla scheda SD su Android?
- 21. Come eseguire il backup del server Git?
- 22. Come posso utilizzare rsync per eseguire il backup dei file modificati in un periodo recente?
- 23. Esiste un modo semplice per eseguire il backup degli snippet utente di Oracle SQL Developer?
- 24. API di backup Android
- 25. Come eseguire un backup da un DB Postgresql tramite JDBC?
- 26. SHARED_DATABASE (DATABASE_URL) ---- backup ---> errore! deve eliminare un backup prima di crearne uno nuovo
- 27. non è possibile ripristinare un file di backup di dettagli per Postgres usando pg_restore
- 28. Best practice per il backup MySQL
- 29. Backup Odoo db dall'interno di odoo
- 30. Ripristinare il DB di SQL Server direttamente da un altro DB
così utile !! Grazie! –