GNU/Linux >> Znalost Linux >  >> Linux

Jak porovnat dvě databáze SQLite na Linuxu

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

Linux
  1. Jak porovnat obsah dvou tarballů

  2. Porovnejte dva obrázky způsobem python/linux

  3. Dvě verze pythonu na linuxu. jak nastavit 2.7 jako výchozí

  1. Jak porovnám binární soubory v Linuxu?

  2. Jak si stojí příkazový řádek Macu v porovnání s Linuxem?

  3. Jaké je srovnání linuxového jádra s mikrokernelovými architekturami?

  1. Jak porovnávat čísla a řetězce ve skriptu Linux Shell

  2. SQLite DB Browser, jak jej nainstalovat a používat na Linuxu

  3. Jak spojit dva textové soubory v Linuxu