ADATBÁZIS VERZIÓKÖVETÉSE:! Marics Tamás 2013. június 20.
TEMATIKA î Adatbázis verziókövetése î Liquibase î Liquiface 2/26
ADATBÁZIS VERZIÓKÖVETÉSE î Miért is jó ez?! A referencia- adatbázis mindig felépíthető a fejlesztői gépen.! Ha találnak egy bug- ot a rendszer egy korábbi verziójában a hozzá tartozó adatbázisszerkezetet elő lehet állítani.! Nincs elkallódó SQL script. 3/26
ADATBÁZIS VERZIÓKÖVETÉSE î Miért is jó ez?! Az adatbázis magától tudja mi lett futtatva, és mi nem.! Automatizálható a frissítési folyamat! Hudson-, Jenkins script írható, hogy automatikusan fusson le release- kor egy adatbázis update 4/26
î Az eszköz! Az egyik, erre a feladatra szánt eszköz a Liquibase 5/26
î Miből is áll?! Két adatbázis tábla : DATABASECHANGELOG és DATABASECHANGELOGLOCK! Egy önálló program, amit futtatni kell megadva az adatbázis elérést, vagy java API, amin ugyanezt meg tudjuk hívni kódból.! Egy changelog fájl az adatbázis- szerkezettel. 6/26
î Adatbázis- függetlenség! Alapból 15 féle adatbázis támogatott. Ez többé kevésbé igaz.! MySQL, PostgreSQL, Oracle, Sql Server(MSSQL), Sybase_Enterprise, Sybase_Anywhere, DB2, Apache_Derby, HSQL, H2, Informix, InterSystems Caché, Firebird, MaxDB / SAPDB, SQLite 7/26
î Changelog! A changelog fájl egy XML fájl, ami tartalmazza az adatbázisváltozásokat.! Ezt a fájlt lehet verziókövetni.! Lehet egymásba include- olni több changelog fájlt.! Nem csak XML lehet, már több formátum is támogatott, pl. JSON 8/26
9/26
î Néhány change! Create table! Drop table! Add column! Drop column! Add foreign key constant! Drop foreign key constant! stb... 10/26
î Nem csak szerkezet! Lehetőség van adattartalom feltöltésére is.! LoadData, Insert 11/26
î Speciális beállítások! Precondition! Context 12/26
î Speciális beállítások! Változók 13/26
î Speciális beállítások! Undo! A beépített change- ek nagy részét vissza tudja vonni, amit nem, ahhoz írhatunk saját visszavonást <rollback> </rollback> közé changeset- enként. 14/26
î Parancsok! UPDATE! ROLLBACK! DIFF! GENERATE CHANGELOG! SQL output 15/26
î Példa 16/26
î Java api! Létezik Java API, amit Mavennel be tudunk húzni a projektünkbe vagy letölthetjük a JAR- t. Itt ugyanazokat a dolgokat meg tudjuk tenni, amiket beírunk a changelog- ba, vagy a parancssorba.! Akár deploy- kor le lehet futtani a changelogokat az API- val. 17/26
î Liquibase hátrányok, nehézségek! Meg kell tanulni a nyelvet! Könnyű elgépelni dolgokat (mondjuk SQL- ben is)! az XML szerkesztgetése általában lassú! XML részleteket gyakran másolunk, és elfelejtjük néhány helyen átírni 18/26
LIQUIFACE î Liquibase GUI, Netbeans alapokon 19/26
LIQUIFACE î Mi is ez, honnan jött az ötlet?! FedEX napos projekt volt! Jó lenne vizualizálni egy changelog- ot és kattintgathatóvá tenni.! Netbeansben fejlesztünk, legyen egy Netbeans plugin.! XML- t szerkeszteni nem mindig kényelmes! Minden művelet létrehoz egy change- et 20/26
LIQUIFACE GUI 21/26
LIQUIFACE GUI 22/26
LIQUIFACE î Mit tud jelenleg?! Lehet kattintgatva alap change- eket létrehozni! Changelog fájlba menteni! Adatbázison changelog- ot futtatni! Megjeleníteni, szűrni kapcsolatokra, nevekre 23/26
LIQUIFACE î Jövőbeli tervek! Change- ek visszagörgethetősége! Külön change- ek kiválasztása! Property set szerkesztő! stb... 24/26
HASZNOS LINKEK î Adatbázis verziókövetés általánosan! http://www.codinghorror.com/blog/2008/02/get- your- database- under- version- control.html î Liquibase! http://www.liquibase.org/ î Liquiface! http://www.liquiface.org/ (under construction ) 25/26
THE END Köszönöm a figyelmet! 26/26