Autore Topic: DB e back-up  (Letto 1216 volte)

Offline xixietto

DB e back-up
« il: 04 Febbraio 2016, 07:48:27 CET »
0
Ho un DB SQLite sapete come fare un backup  e ripristino dei dati ?
In modo che se per sbaglio cancellassi potrei sempre recuperare il tutto

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline iClaude

  • Utente normale
  • ***
  • Post: 177
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5
  • Sistema operativo:
    Windows 10
Re:DB e back-up
« Risposta #1 il: 04 Febbraio 2016, 14:23:25 CET »
0
Semplicemente copi il file del database in un'altra posizione.

Offline xixietto

Re:DB e back-up
« Risposta #2 il: 04 Febbraio 2016, 15:06:18 CET »
0
E sai come si fa? E in caso dovrei fare un rispistino?

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline carbos

  • Nuovo arrivato
  • *
  • Post: 30
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3 Neo
  • Sistema operativo:
    Windows10
Re:DB e back-up
« Risposta #3 il: 04 Febbraio 2016, 17:29:53 CET »
0
Il database non è altro che un file SQL, quindi ti basta solamente esportare questo file, tramite phpMyAdmin c'è proprio il comando "Esporta" ed "Importa"

Offline iClaude

  • Utente normale
  • ***
  • Post: 177
  • Respect: +11
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S5
  • Sistema operativo:
    Windows 10
Re:DB e back-up
« Risposta #4 il: 04 Febbraio 2016, 17:41:19 CET »
0
Ma vuoi farlo da programma o manualmente?

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:DB e back-up
« Risposta #5 il: 04 Febbraio 2016, 18:21:38 CET »
0
Ciao a tutti scusate se mi intrometto ma una cosa del genere potrebbe andare o è sbagliato farla?

Codice (Java): [Seleziona]
            File currentDB = new File(Environment.getDataDirectory() + "//data//package_name//databases", filename);
            File backupDB = new File(Environment.getExternalStorageDirectory().getPath(), filename);

            FileChannel src = new FileInputStream(currentDB).getChannel();
            FileChannel dst = new FileOutputStream(backupDB).getChannel();
            dst.transferFrom(src, 0, src.size());
            src.close();
            dst.close();

Offline xixietto

Re:DB e back-up
« Risposta #6 il: 04 Febbraio 2016, 18:56:22 CET »
0
E il database interno SQLite che parlo.. Io vorrei prendere tutti i valori del DB e tenermelo a parte in una cartella creata.. Cosi in caso di crash o aggiornamenti sbagliati.. I utente può sempre tornare all applicazione con i suoi dati

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:DB e back-up
« Risposta #7 il: 04 Febbraio 2016, 18:58:39 CET »
0
Sì è quello che fa il codice che ho scritto

Offline xixietto

Re:DB e back-up
« Risposta #8 il: 04 Febbraio 2016, 19:09:00 CET »
0
Appena posso lo provo NET.. Poi devo aggiornarti riguardo quella cosa

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:DB e back-up
« Risposta #9 il: 04 Febbraio 2016, 19:35:15 CET »
0
Provalo. Non so se sia il modo migliore ma funziona.

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 583
  • Respect: +130
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:DB e back-up
« Risposta #10 il: 05 Febbraio 2016, 09:44:49 CET »
+1
Un consiglio da amico: non usate mai path cablati tipo "//data//package_name//databases". State assumendo che l'organizzazione interna delle app non cambi mai.

Questo è il codice che uso nelle mie app:

Codice (Java): [Seleziona]
try {
        File sd = Environment.getExternalStorageDirectory(); //Root della scheda SD
        File data = getDatabasePath("nome_database.db"); //Percorso del DB.

        if (sd.canWrite()) { //Verifico di poter scrivere nella SD
                File currentDB = data;
                File backupDB = new File(sd, "nome_backup.db");

                if (currentDB.exists()) { //Verifico che il DB esista
                        FileInputStream fis = new FileInputStream(currentDB);
                        FileOutputStream fos = new FileOutputStream(backupDB);
                        FileChannel src = fis.getChannel();
                        FileChannel dst = fos.getChannel();
                        dst.transferFrom(src, 0, src.size());
                        src.close();
                        dst.close();
                        fos.close();
                        fis.close();
                }
        }
} catch (Exception e) {
        Slg.w(TAG, "exportDB", "", e);
}
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:DB e back-up
« Risposta #11 il: 05 Febbraio 2016, 09:46:45 CET »
0
Si hai ragione, ma avevo fatto delle prove nel modo che suggerisci e non mi funzionava. Mi restituiva un percorso errato.

Ci riprovo

Post unito: 05 Febbraio 2016, 10:18:09 CET
Ho riprovato modificando leggermente il tuo codice perchè dovevo fare cose un pochino diverse ma comuqnue usando la getDatabasePath quindi senza path cablati e funziona. Non so cosa mi fossi fumato l'altra volta   :-P.
Grazie Ohmnibus
« Ultima modifica: 05 Febbraio 2016, 10:18:10 CET da NetGEL, Reason: Merged DoublePost »

Offline xixietto

Re:DB e back-up
« Risposta #12 il: 05 Febbraio 2016, 21:46:58 CET »
0
Secondo voi quando è meglio usare il backup? Ogni volta che l utente modifica o aggiunge qualcosa nel DB ? O solo su richiesta quindi manualmente ?

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:DB e back-up
« Risposta #13 il: 05 Febbraio 2016, 22:59:37 CET »
0
Manualmente su richiesta dell'utente

Offline xixietto

Re:DB e back-up
« Risposta #14 il: 05 Febbraio 2016, 23:00:22 CET »
0
Grazie NET! Appena h tempo provo :)

Inviato dal mio GT-I9505 utilizzando Tapatalk