Porovnanie SQL databaz

Porovnanie SQL databaz
« kdy: 18. 09. 2020, 10:16:03 »
Mam otazku ako porovnat 2 sql databazy (s backupu )a vyexportovat vsetky rozdiely? Hlavne nastavenia, indexy. Existuje nieaky jednoduchy tools?


Re:Porovnanie SQL databaz
« Odpověď #1 kdy: 18. 09. 2020, 11:01:22 »
a nemuzes je obe nainportovat (pokud to nejsou obludy) a porovnat je uz normalnimi dotazy?

Re:Porovnanie SQL databaz
« Odpověď #2 kdy: 18. 09. 2020, 12:02:39 »
Čas od času se objeví nějaké nástroje, ale nevím o ničem, co by se tak říkajíc "ujalo".
Nejjednodušší je porovnat to SQL dotazy, nebo v některých případech se dají diffem porovnat exporty/dumpy.

Optimální cesta se musí najít podle případu - počet tabulek, délka dat, šířka dat....

Poznámka na okraj: správně by v databázích taková potřeba neměla vyvstat, když je potřeba trackovat změny, hlídají se už rovnou v databázi. Jako mimořádnou situaci, kdy je to potřeba, si dovedu např. představit slučování dat se zálohou po havárii.

Re:Porovnanie SQL databaz
« Odpověď #3 kdy: 18. 09. 2020, 14:22:28 »
Tam je problem v tom ze existuje backup a potom aktualna verzia v ktorej niekto spravil "zmeny" nie je zname ci v nastaveniach, indexoch, klucoch, whatever a ide o to najst vsetky zmeny voci backupu. Struktura by mala byt rovnaka ale ide o to zistit co presne sa zmenilo. Mne to vychadza tak ze naimportovat obe verzie a priste to porovnavat preto ta otazka ci ma niekto skusenost s toolsom ktory by toto vedel poriesit a nemusel by som manualne prechadzat 2 DB.

Re:Porovnanie SQL databaz
« Odpověď #4 kdy: 18. 09. 2020, 14:30:36 »
Nevím jakou máte DB k dispozici, ale v Postgresu bych na to použil pg_dump --schema-only (tj. bez dat) a pak diffem se podíval na rozdíly ve struktuře, indexech apod.


Re:Porovnanie SQL databaz
« Odpověď #5 kdy: 18. 09. 2020, 14:39:12 »
Chcete porovnat data nebo strukturu? Strukturu a základní data je nejlepší verzovat již v projektu pomocí db-migračního nástroje (Flyway, ...), pak vidíte rovnou v databází jakou verzi struktury databáze má a potřebné změny jsou aplikovány automaticky pomocí sady změnových souborů. Funguje to bezproblémově.

Někteří sql klienti mají i nástroje na porovnání,  např. Dbeaver má Schema compare a Data compare (jde tuším o  placené pluginy). SQuirell má dbdiff a dbcopy. Podobné funkce mohou mít i různé data-pump nástroje.  Osobně ale většinou dumpuji samotnou strukturu a použiju textový diff, to mi většinou stačí.