Quantcast
Channel: Fatal exception » Programacion
Viewing all articles
Browse latest Browse all 10

Copia de seguridad de sqlite a la unidad sdcard en Android

0
0

Cuando ya tenemos una aplicación en producción y ocurre un problema causado por la base de datos suele ser complicado averiguar donde esta el problema, es buena idea tener una copia de la misma base de datos para ver exactamente que esta pasando.

Hace un tiempo que estaba buscando la manera de sacar un backup de la base de datos de una aplicación en Android, después de probar varias opciones encontré un segmento de código que sí ha funcionado:

public void backupdDatabase(){
    try {
	    File sd = Environment.getExternalStorageDirectory();
	    File data = Environment.getDataDirectory();
	    String packageName  = "com.yourapp.package";
	    String sourceDBName = "mydb.db";
	    String targetDBName = "mydb";
	    if (sd.canWrite()) {
	    	Date now = new Date();
		String currentDBPath = "data/" + packageName + "/databases/" + sourceDBName;
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm"); 
		String backupDBPath = targetDBName + dateFormat.format(now) + ".db";
 
		File currentDB = new File(data, currentDBPath);
		File backupDB = new File(sd, backupDBPath);
 
		Log.i("backup","backupDB=" + backupDB.getAbsolutePath());
		Log.i("backup","sourceDB=" + currentDB.getAbsolutePath());
 
		FileChannel src = new FileInputStream(currentDB).getChannel();
		FileChannel dst = new FileOutputStream(backupDB).getChannel();
		dst.transferFrom(src, 0, src.size());
		src.close();
		dst.close();
	    }
	} catch (Exception e) {
		Log.i("Backup", e.toString());
	}
}

Ustedes ya se encargan de cambiar los valores y mostrar los mensajes de error.

Me olvidaba que necesitarán del permiso para escribir en la memoria SD:

   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

Obtenido de: Stackoverflow

 


Viewing all articles
Browse latest Browse all 10

Latest Images

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.2 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.

Re:

Re:

Re:

Re:

Re:

Re:

Re:

Re:

Re:

Re:





Latest Images

Doodle Jump 3.11.30 by Lima Sky LLC

Doodle Jump 3.11.30 by Lima Sky LLC

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.1 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.

Vimeo 10.6.0 by Vimeo.com, Inc.

Re:

Re:

Re:

Re:

Re:

Re:

Re:

Re:

Re:

Re: