¿Qué es la base de datos "-journal" SQLite en Android?

En el directorio de base de datos de mi aplicación andoid (/data/data/com.me.myApp/databases), para cada base de datos sqlite que creo hay una base de datos correspondiente con el mismo nombre con "-journal" añadido a su nombre.

Por ejemplo: myDatabase, myDatabase-journal, myOtherDatabase.db, myOtherDatabase.db-journal

¿Que es esto?

y,

Si estoy proporcionando bases de datos pre-llenadas para mi aplicación (como por: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ ) necesito incluir Estos también?

Tales archivos de -journal no necesitan (y no deben) ser distribuidos.

Esto se debe a que los distintos archivos de diario representan datos temporales (por ejemplo, el uso de archivos de disco temporales de SQLite) utilizados por SQLite. En particular un archivo -journal es un diario de reversión .

Un diario de reversión es un archivo temporal utilizado para implementar capacidades de confirmación atómica y retrotracción en SQLite. (Para una discusión detallada de cómo funciona esto, vea el documento separado titulado Atomic Commit In SQLite). El diario de reversión siempre se encuentra en el mismo directorio que el archivo de base de datos y tiene el mismo nombre que el archivo de base de datos excepto con los 8 caracteres " -journal "añadido.

El diario de reversión se crea generalmente cuando se inicia una transacción y normalmente se elimina cuando una transacción se confirma o se vuelve a realizar. El archivo de diario de reversión es esencial para implementar las capacidades de confirmación atómica y retrotracción de SQLite. Sin un diario de reversión, SQLite sería incapaz de revertir una transacción incompleta, y si un accidente o pérdida de energía se produjo en medio de una transacción de toda la base de datos probablemente se corrompería sin un diario de reversión.

En general, estos archivos -journal sólo deben existir cuando hay una base de datos SQLite abierta -o mejor dicho, una transacción en ejecución- pero se puede controlar a través de PRAGMA journal_mode . Con la configuración predeterminada del pragma, se -journal archivos -journal .

El modo DELETE de registro en diario es el comportamiento normal. En el modo DELETE, el diario de retrotracción se elimina al final de cada transacción. De hecho, la operación de eliminación es la acción que hace que la transacción se cometan.

Asegúrese de copiar solamente los archivos de base de datos reales cuando la base de datos no está abierta y todas las revistas han sido eliminadas (o borradas) por el propio SQLite; Esto implica que todas las transacciones se han completado y la base de datos está en un estado consistente.

  • ¿Cómo hago una consulta insensible a mayúsculas con ContentResolver en Android?
  • Ciclo de vida de la base de datos Sqlite? ¿Se elimina cuando se cierra la aplicación?
  • Compruebe si la consulta SQL ha tenido éxito en Android SQLite
  • Almacenar Android SQLite
  • Actualizar la base de datos sqlite que copio de la carpeta de activos (Android)
  • Android NDK construir de spatialite?
  • ¿Cómo realizar una consulta SQLite dentro de una aplicación de Android?
  • El error del cursor en Android me dice que la columna no existe
  • Eliminar fila de SQLite con cláusula where con cláusulas múltiples
  • Código de error SQLite 17
  • SQLite de Android que incrementa un valor de columna
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.