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.
-
PostgreSQL JDBC Driver A PostgreSQL driver-t az alábbi linken tölthetjük le:
PostgreSQL JDBC Driver -
Microsoft SQL Server JDBC Driver Az MS SQL driver-t az alábbi linken tölthetjük le:
Microsoft SQL Server JDBC Driver -
IBM DB2 JDBC Driver A DB2 driver-t az alábbi linken tölthetjük le:
IBM DB2 JDBC Driver
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 azmssql08é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=%
db2.properties néven mentettük el akkor a következő paranccsal generálható le az adatbázis dokumentáció:
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:
Paranccsoros futtatás esetén pedig az alábbi módon: