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