Fórum Root.cz
Hlavní témata => Server => Téma založeno: Wangarad 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?
-
a nemuzes je obe nainportovat (pokud to nejsou obludy) a porovnat je uz normalnimi dotazy?
-
Č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.
-
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.
-
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.
-
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čí.