database - programacion - extraer base de datos sqlite android
Cómo hacer una copia de seguridad de la base de datos sqlite? (3)
.backup es la mejor manera.
sqlite3 my_database .backup > my_database.back
También puede probar el comando .dump, que le da la capacidad de volcar toda la base de datos o tablas en un archivo de texto. Si se especifica TABLE, solo volcar tablas que coincidan con el patrón LIKE TABLE.
sqlite3 my_database .dump > my_database.back
¿Cuál es la forma correcta de hacerlo? ¿Solo copio el archivo .sq3?
¿Qué sucede si hay usuarios en el sitio y se está escribiendo un archivo mientras se está copiando?
La herramienta de línea de comandos sqlite3 presenta el comando .backup
dot .
Puede conectarse a su base de datos con:
sqlite3 my_database.sq3
y ejecute el comando de punto de respaldo con:
.backup backup_file.sq3
En lugar de la conexión interactiva a la base de datos, también puede hacer la copia de seguridad y cerrar la conexión después con
sqlite3 my_database.sq3 ".backup ''backup_file.sq3''"
De cualquier forma, el resultado es una copia llamada backup_file.sq3
de la base de datos my_database.sq3
.
Es diferente de la copia regular de archivos, ya que se ocupa de los usuarios que trabajan actualmente en la base de datos. Hay bloqueos adecuados establecidos en la base de datos, por lo que la copia de seguridad se realiza exclusivamente.
try {
final String inFileName = "/data/data/your app package/databases/db";
File dbFile = new File(inFileName);
FileInputStream fis = new FileInputStream(dbFile);
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/CALC/Backup";
File dir = new File(path);
if (!dir.exists()) dir.mkdirs();
String outFileName = path + "/filename"; // output file name
// Open the empty db as the output stream
OutputStream output = new FileOutputStream(outFileName);
// Transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
Toast.makeText(getActivity(), "Backup Successfully", 2).show();
// Close the streams
output.flush();
output.close();
fis.close();
}
catch (Exception e) {
e.printStackTrace();
}