26
WEBSTAR CSOPORT WCS ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE Marics Tamás 2013. június 20.

ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

  • Upload
    lupita

  • View
    38

  • Download
    3

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

S

ADATBÁZIS VERZIÓKÖVETÉSE:LIQUIBASE

Marics Tamás2013. június 20.

Page 2: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

Stematika

Adatbázis verziókövetése

Liquibase

Liquiface

2/26

Page 3: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SAdatbá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

Page 4: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SAdatbá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

Page 5: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

Az eszköz

Az egyik, erre a feladatra szánt eszköz a Liquibase

5/26

Page 6: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

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

Page 7: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

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

Page 8: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

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

Page 9: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

9/26

Page 10: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

Néhány changeCreate table

Drop table

Add column

Drop column

Add foreign key constant

Drop foreign key constant

stb...

10/26

Page 11: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

Nem csak szerkezet

Lehetőség van adattartalom feltöltésére is.

LoadData, Insert

11/26

Page 12: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

Speciális beállítások

Precondition

Context

12/26

Page 13: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

Speciális beállítások

Változók

13/26

Page 14: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

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

Page 15: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

Parancsok

UPDATE

ROLLBACK

DIFF

GENERATE CHANGELOG

SQL output

15/26

Page 16: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

Példa

16/26

Page 17: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

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

Page 18: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquibase

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

Page 19: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquiface

Liquibase GUI, Netbeans alapokon

19/26

Page 20: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquiface

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-et20/26

Page 21: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquiface GUI

21/26

Page 22: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquiface GUI

22/26

Page 23: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquiface

23/26

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

Page 24: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

SLiquiface

24/26

Jövőbeli tervek

Change-ek visszagörgethetősége

Külön change-ek kiválasztása

Property set szerkesztő

stb...

Page 25: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

Shasznos linkek

25/26

Adatbázis verziókövetés általánosan

http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-control.html

Liquibasehttp://www.liquibase.org/

Liquifacehttp://www.liquiface.org/(under construction…)

Page 26: ADATBÁZIS VERZIÓKÖVETÉSE: LIQUIBASE

WEBSTAR CSOPORTWC

Sthe end

26/26

Köszönöm a figyelmet!