260 likes | 351 Views
ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE. Marics Tamás. 2013. június 20. tematika. Adatbázis verziókövetése Liquibase Liquiface. Adatbázis verziókövetése. Miért is jó ez? A referencia-adatbázis mindig felépíthető a fejlesztői gépen.
E N D
ADATBÁZIS VERZIÓKÖVETÉSE:LIQUIBASE • Marics Tamás 2013. június 20.
tematika • Adatbázis verziókövetése • Liquibase • Liquiface
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.
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
Liquibase • Az eszköz • Az egyik, erre a feladatra szánt eszköz a Liquibase
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.
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
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
Liquibase • Néhány change • Create table • Drop table • Add column • Drop column • Add foreign key constant • Drop foreign key constant • stb...
Liquibase • Nem csak szerkezet • Lehetőség van adattartalom feltöltésére is. • LoadData, Insert
Liquibase • Speciális beállítások • Precondition • Context
Liquibase • Speciális beállítások • Változók
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<rollback>…</rollback>közé changeset-enként.
Liquibase • Parancsok • UPDATE • ROLLBACK • DIFF • GENERATE CHANGELOG • SQL output
Liquibase • Példa
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.
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
Liquiface • Liquibase GUI, Netbeans alapokon
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
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
Liquiface • Jövőbeli tervek • Change-ek visszagörgethetősége • Külön change-ek kiválasztása • Property set szerkesztő • stb...
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…)
the end Köszönöm a figyelmet!