Podívejte se prosím na SQLite Release 3.8.10, který byl vydán 7. května 2015. Toto vydání poprvé obsahuje sqldiff.exe obslužný program pro výpočet rozdílů mezi dvěma databázovými soubory SQLite. S největší pravděpodobností bude tento program také součástí budoucích verzí.
Soubor sqldiff.exe nástroj příkazového řádku by měl fungovat pro všechny podporované operační systémy a nabízí několik přepínačů pro změnu chování výstupu. Příklad použití:
sqldiff [options] database1.sqlite database2.sqlite
Pokud nejsou zadány žádné možnosti, pak výstup sqldiff.exe jsou příkazy SQL, které transformují database1.sqlite
("zdrojová" databáze) do database2.sqlite
("cílová" databáze).
Existují však i určitá omezení. Například sqldiff.exe utilita (alespoň aktuálně) nezobrazuje rozdíly v TRIGGERech, VIEWech nebo virtuálních tabulkách.
Ukázkový příkaz a výstup
Vzal jsem jednoduchou databázi úložiště párů klíč–hodnota (db1.sqlite
) a vytvořili jeho kopii (db2.sqlite
). Poté jsem vložil jeden pár klíč–hodnota do db2.sqlite
. Poté jsem spustil následující příkaz:
sqldiff db1.sqlite db2.sqlite
a získal následující výstup:
INSERT INTO moje_tabulka(rowid,"klíč",hodnota) VALUES(1,'D:\Test\Test.txt',x'aabbccdd');
UPDATE my_table_size SET counter=1 WHERE rowid=1;
Tabulka my_table_size
byl automaticky aktualizován pomocí TRIGGER poté, co byl pár klíč–hodnota vložen na my_table
. Poté jsem spustil sqldiff.exe znovu, ale tentokrát s db2.sqlite
jako první argument a db1.sqlite
jako druhý argument:
sqldiff db2.sqlite db1.sqlite
a získal následující výstup:
DELETE FROM my_table WHERE rowid=1;
UPDATE my_table_size SET counter=0 WHERE rowid=1;
Odkazy ke stažení sqldiff
Od verze SQLite 3.10.2, která byla vydána 20. ledna 2016, jsou 32bitové binární soubory pro sqldiff lze stáhnout přímo ze stránky stahování SQLite. Lze je nalézt v nástrojích sqlite archivy pro odpovídající operační systémy (viz Předkompilované binární soubory sekce). Zde jsou například odkazy na nástroje sqlite archivy verze 3.39.3:
- Nástroje SQLite pro Linux
- Nástroje SQLite pro OS X
- Nástroje SQLite pro Windows
Pro verze SQLite před verzí 3.10.2 hostuje web SQLite 32bitové binární soubory pro sqldiff , ale nesouvisí s nimi. Zde jsou odkazy na sqldiff verze 3.8.10:
- sqldiff pro Linux
- sqldiff pro OS X
- sqldiff pro Windows
Pokud potřebujete 64bitové binární soubory, musíte si stáhnout nezpracované zdroje a zkompilovat je sami. (Soubor sqldiff.c se nachází v nástroji podadresář archivu obsahujícího zdroje.)
Jednou z možností je použít sqlite3
klienta příkazového řádku pro export obou databází a poté porovnání výstupu. Například,
sqlite3 first.sqlite .dump >first.dump
sqlite3 second.sqlite .dump >second.dump
diff first.dump second.dump