Kihagyás

Adatbázis dokumentáció

1. Bevezető

Időről-időre az üzemeltetésnek (de akár a fejlesztőknek is) szüksége lehet egy dokumentációra az adatbázisról, amelyben könnyen áttekinthetőek az adatbázis táblák, nézetek, tárolt eljárások, illetve az adatbázis kapcsolatok.

Azonban mivel az adatbázis séma folyamatosan változhat, illetve bővülhet, ezért ezt a dokumentációt nem kézzel állítjuk elő, hanem generáljuk.

Ehhez a SchemaSpy alkalmazást használjuk.

2. Szoftveres követelmények

2.1 SchemaSpy

Elősször is szükségünk van a legfrissebb SchemaSpy futtatható állományára amit az alábbi linken tölthetünk le:
SchemaSpy

2.2 Az adatbázis típusának megelelő driver:

Mivel a SchemaSpy alkalmazásban nincs benne alapértelmezetten az adatbázis kapcsolat létrehozásához szükséges JDBC driver így manuálisan kell letöltenünk az igényeinknek megfelelőt.

2.3 Java Runtime Environment (JRE)

Természetesen, mivel a SchemaSpy egy Java alkalmazás ezért a Java Runtime Environment megléte is szükséges a futtatásához.

2.4 (Opcionális) Graphviz

A diagramok generálásához a SchemaSpy a Graphviz szoftver használja. A Graphviz az alábbi linken tölthető le:
Graphviz

Graphviz telepítés előnyei

A Graphvit telepítése nem kötelező, de a gyakorlat azt mutatja, hogy ha natívan feltelepítjük a Graphviz szoftvert a gépünkre úgy a dokumentáció gyorsabban legenerálható.

3. Generálás

3.1 Generálás parancssori argumentumokkal:

A schemaspy.jar-t tartalmazó könyvtárban állva, az alábbi parancsot kiadva tudjuk generálni a dokumentációt:

java -jar schemaspy.jar -vizjs -t ${database-type} -dp /${database-jdbc-driver-path}/sqljdbc_9.2/enu/mssql-jdbc-9.2.1.jre8.jar -db ${database-name} -host ${database-host} -port ${database-port} -s ${database-schema-name} -u ${databade-username} -p ${database-password} -o /${database-documentation-output-folder-name}

Paraméterek:

  • -vizjs: Ezzel a kapcsolóval adható meg, hogy a SchemaSpy beépített diagram generálóval szeretnénk-e legenerálni az adatbázis kapcsolatokat ábrázoló diagramokat. A kapcsoló elhagyható amennyiben a számítógépünkön telepítve van a Graphviz alkalmazás.
  • -t : A használt adatbázis típusa. (Például ha a projekten 2017-es verziójú Microsoft SQL Server-t használunk, akkor a SchemaSpy-ban az mssql08 értéket kell megadni adatbázis típusnak, ami a 2008-asnál újabb MS SQL Server adatbázisok esetén használandó paraméter.)
  • -dp : Az adatbázis kapcsolathoz szükséges JDBC driver útvonalat kell ebben a paraméterben megadni.
  • -db : Az adatbázis nevét kell ebben a paraméterben megadni.
  • -host : Az adatbázis host nevét kell ebben a paraméterben megadni.
  • -port : Az adatbázis port számát kell ebben a paraméterben megadni.
  • -s: Az adatbázis séma nevét kell ebben a paraméterben megadni.
  • -u: Az adatbázis kapcsolathoz használt felhasználó nevét kell ebben a paraméterben megadni.
  • -p: Az adatbázis kapcsolathoz használt felhasználó jelszavát kell ebben a paraméterben megadni.
  • -o: Ebben a paraméterben lehet megadni, melyik mappába szeretnénk a dokumentációt generálni.

3.2 Generálás properties fájl használatával:

A parancssori argumentumok helyett megadhatunk egy properties kiterjesztésű fájlt is, amit előtölthetünk a szükséges paraméterekkel az alábbi módon:

Példa properties fájl DB2 adatbázishoz:

# type of database. Run with -dbhelp for details
schemaspy.t=db2
# optional path to alternative jdbc drivers.
schemaspy.dp=c:\Work\Tools\db2jdbc_10.5\db2jcc4-4.23.42.jar
# database properties: host, port number, name user, password
schemaspy.host=localhost
schemaspy.port=50000
schemaspy.db=kavosz
schemaspy.u=lizi
schemaspy.p=Asdf1234
# output dir to save generated files
schemaspy.o=/c/Work/Database_Documentation
# db scheme for which generate diagrams
schemaspy.s=LIZI
driver=com.ibm.db2.jcc.DB2Driver
connectionSpec=jdbc:db2://localhost:50000/kavosz
schemaspy.cat=%
Ezt követően ha a fenti fájlt pl.: db2.properties néven mentettük el akkor a következő paranccsal generálható le az adatbázis dokumentáció:
java -jar schemaspy.jar -configFile db2.properties

Extra adatbázis property-k megadása

Amennyiben a fenti property-ken kívül egyéb paramétereket is meg kell adni az adatbázis kapcsolathoz, pl.: trustServerCertificate=true akkor azokat a schemaspy.db property-ben kell megadni az adatbázis neve után ;-vel elválasztva:

schemaspy.db=kavosz;trustServerCertificate=true

Paranccsoros futtatás esetén pedig az alábbi módon:

-db kavosz;trustServerCertificate=true