75 lines
2.0 KiB
Markdown
75 lines
2.0 KiB
Markdown
# RepoVizChecker
|
||
|
||
Ein Python-Werkzeug zum Abgleich von **RepoViz-Annotationen** mit dem tatsächlich verwendeten SQL-Code in Kornshell-Skripten (`.ksh`).
|
||
|
||
---
|
||
|
||
## Beschreibung
|
||
|
||
KSH-Skripte enthalten häufig RepoViz-Metadaten in Form von Kommentar-Annotationen:
|
||
|
||
```ksh
|
||
#@modul: mein_skript.ksh
|
||
#@quelle: TABELLE_A, TABELLE_B
|
||
#@ziel: TABELLE_Z
|
||
```
|
||
|
||
`repovizcheck.py` liest diese Annotationen aus und vergleicht sie mit den Tabellennamen, die im Code über `$SCHEMA.<TABELLE>` bzw. `${SCHEMA}.<TABELLE>` tatsächlich referenziert werden.
|
||
|
||
---
|
||
|
||
## Features
|
||
|
||
- ✅ Liest `#@modul:`, `#@quelle:` und `#@ziel:` Annotationen aus dem KSH-Skript
|
||
- ✅ Erkennt verwendete Tabellen per Regex (`$SCHEMA.*` / `${SCHEMA}.*`)
|
||
- ✅ Vergleich **Repo → SQL**: Sind alle dokumentierten Tabellen im Code vorhanden?
|
||
- ✅ Vergleich **SQL → Repo**: Sind alle Code-Tabellen in den Annotationen dokumentiert?
|
||
- ✅ Prüft, ob der Skriptname in `#@modul:` eingetragen ist
|
||
- ✅ Encoding-Fallback: UTF-8 → ISO-8859-1
|
||
- ✅ Temporäre Tabellen (`TMP_*`) werden automatisch ignoriert
|
||
|
||
---
|
||
|
||
## Voraussetzungen
|
||
|
||
- Python 3.x
|
||
- Keine zusätzlichen Pakete erforderlich (nur Standardbibliothek)
|
||
|
||
---
|
||
|
||
## Aufruf
|
||
|
||
```powershell
|
||
python repovizcheck.py <skript.ksh>
|
||
```
|
||
|
||
### Beispiel
|
||
|
||
```powershell
|
||
python repovizcheck.py C:\projekte\etl_job.ksh
|
||
```
|
||
|
||
---
|
||
|
||
## Ausgabe (Übersicht)
|
||
|
||
| Abschnitt | Beschreibung |
|
||
|---|---|
|
||
| **RepoViz-Informationen** | Sortierte Ausgabe von Modul, Quell- und Zieltabellen |
|
||
| **Modul-Check** | Ist der Skriptname in `#@modul:` eingetragen? |
|
||
| **Repo → SQL** | Welche dokumentierten Tabellen sind im Code vorhanden / fehlen? |
|
||
| **SQL → Repo** | Welche Code-Tabellen sind dokumentiert / nicht dokumentiert? |
|
||
|
||
---
|
||
|
||
## Hinweise
|
||
|
||
- Es werden ausschließlich `.ksh`-Dateien akzeptiert (case-insensitive).
|
||
- Tabellennamen werden für alle Vergleiche in **Großbuchstaben** normalisiert.
|
||
|
||
---
|
||
|
||
## Lizenz
|
||
|
||
Internes Werkzeug – Deutsche Telekom AG
|