GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo comparar dos bases de datos SQLite en Linux

Eche un vistazo a la versión 3.8.10 de SQLite que se lanzó el 7 de mayo de 2015. Esta versión contiene por primera vez el sqldiff.exe programa de utilidad para calcular las diferencias entre dos archivos de base de datos SQLite. Lo más probable es que este programa también forme parte de futuros lanzamientos.

El sqldiff.exe La herramienta de línea de comandos debería funcionar para todos los sistemas operativos compatibles y ofrece varios conmutadores para modificar su comportamiento de salida. Ejemplo de uso:

sqldiff [options] database1.sqlite database2.sqlite

Si no se especifica ninguna opción, la salida de sqldiff.exe son declaraciones SQL que transformarán database1.sqlite (la base de datos "fuente") en database2.sqlite (la base de datos de "destino").

Sin embargo, también existen ciertas limitaciones. Por ejemplo, sqldiff.exe La utilidad (al menos actualmente) no muestra diferencias en TRIGGER, VIEW o tablas virtuales.

Comando y salida de muestra

Tomé una base de datos de almacén de clave-valor simple (db1.sqlite ) e hizo una copia del mismo (db2.sqlite ). Luego inserté un par clave-valor en db2.sqlite . Después de eso ejecuté el siguiente comando:

sqldiff db1.sqlite db2.sqlite

y obtuve el siguiente resultado:

INSERTAR EN my_table(rowid,"key",value) VALUES(1,'D:\Test\Test.txt',x'aabbccdd');
ACTUALIZAR my_table_size SET contador=1 DONDE filaid=1;

La mesa my_table_size fue actualizado automáticamente por un TRIGGER después de que el par clave-valor se insertó en my_table . Luego ejecuté sqldiff.exe de nuevo, pero esta vez con db2.sqlite como primer argumento y db1.sqlite como segundo argumento:

sqldiff db2.sqlite db1.sqlite

y obtuve el siguiente resultado:

ELIMINAR DE my_table DONDE rowid=1;
ACTUALIZAR my_table_size SET contador=0 DONDE filaid=1;

enlaces de descarga de sqldiff

Desde la versión 3.10.2 de SQLite, que se lanzó el 20 de enero de 2016, los binarios de 32 bits para sqldiff se puede descargar directamente desde la página de descarga de SQLite. Se pueden encontrar en las herramientas de sqlite archivos para los sistemas operativos correspondientes (consulte los Binarios precompilados secciones). Por ejemplo, aquí están los enlaces a las herramientas de sqlite archivos de la versión 3.39.3:

  • Herramientas SQLite para Linux
  • Herramientas de SQLite para OS X
  • Herramientas de SQLite para Windows

Para versiones de SQLite anteriores a la versión 3.10.2, el sitio web de SQLite aloja binarios de 32 bits para sqldiff , pero no enlaza con ellos. Aquí están los enlaces a sqldiff de la versión 3.8.10:

  • sqldiff para Linux
  • sqldiff para OS X
  • sqldiff para Windows

Si necesita binarios de 64 bits, debe descargar las fuentes sin procesar y compilarlas usted mismo. (El archivo sqldiff.c se encuentra en la herramienta subdirectorio del archivo que contiene las fuentes.)


Una posibilidad es usar el sqlite3 cliente de línea de comando para exportar ambas bases de datos y luego diferenciar la salida. Por ejemplo,

sqlite3 first.sqlite .dump >first.dump
sqlite3 second.sqlite .dump >second.dump
diff first.dump second.dump

Linux
  1. SQLite DB Browser, cómo instalarlo y usarlo en Linux

  2. Linux:¿cómo se compara el kernel de Linux con las arquitecturas de microkernel?

  3. Cómo comparar el contenido de dos tarball

  4. Compara dos imágenes al estilo python/linux

  5. ¿Cómo se compara el kernel de Linux con las arquitecturas de microkernel?

Cómo comparar y fusionar archivos de texto en Linux (parte 2)

Cómo comparar directorios con Meld en Linux

Cómo jugar Se necesitan dos en Linux

Cómo mostrar dos archivos uno al lado del otro en Linux

Cómo comparar dos archivos en la terminal de Linux

Cómo sincronizar dos servidores web en Linux automáticamente