WCS
WEBSTAR CSOPORT
ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE ! Marics Tamás 2013. június 20.
WCS
WEBSTAR CSOPORT
TEMATIKA
î Adatbázis verziókövetése î Liquibase î Liquiface
2/26
WCS
WEBSTAR CSOPORT
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
WCS
WEBSTAR CSOPORT
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
WCS
WEBSTAR CSOPORT
LIQUIBASE
î Az eszköz ! Az egyik, erre a feladatra szánt eszköz a Liquibase
5/26
WCS
WEBSTAR CSOPORT
LIQUIBASE
î 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
WCS
WEBSTAR CSOPORT
LIQUIBASE
î 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
WCS
WEBSTAR CSOPORT
LIQUIBASE
î 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
WCS
WEBSTAR CSOPORT
LIQUIBASE
9/26
WCS
WEBSTAR CSOPORT
LIQUIBASE
î Néhány change ! Create table ! Drop table ! Add column ! Drop column ! Add foreign key constant ! Drop foreign key constant ! stb... 10/26
WCS
WEBSTAR CSOPORT
LIQUIBASE
î Nem csak szerkezet ! Lehetőség van adattartalom feltöltésére is. ! LoadData, Insert
11/26
WCS
WEBSTAR CSOPORT
LIQUIBASE
î Speciális beállítások ! Precondition ! Context
12/26
WCS
WEBSTAR CSOPORT
LIQUIBASE
î Speciális beállítások ! Változók
13/26
WCS
WEBSTAR CSOPORT
LIQUIBASE
î 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
… közé changeset-‐enként.
14/26
WCS
WEBSTAR CSOPORT
LIQUIBASE
î Parancsok ! UPDATE ! ROLLBACK ! DIFF ! GENERATE CHANGELOG ! SQL output
15/26
WCS
WEBSTAR CSOPORT
LIQUIBASE
î Példa
16/26
WCS
WEBSTAR CSOPORT
LIQUIBASE
î 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
WCS
WEBSTAR CSOPORT
LIQUIBASE
î 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
WCS
WEBSTAR CSOPORT
LIQUIFACE
î Liquibase GUI, Netbeans alapokon
19/26
WCS
WEBSTAR CSOPORT
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
WCS
WEBSTAR CSOPORT
LIQUIFACE GUI
21/26
WCS
WEBSTAR CSOPORT
LIQUIFACE GUI
22/26
WCS
WEBSTAR CSOPORT
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
WCS
WEBSTAR CSOPORT
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
WCS
WEBSTAR CSOPORT
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
WCS
WEBSTAR CSOPORT
THE END
Köszönöm a figyelmet!
26/26