Kivitendo Einheiten-Migration für ZUGFeRD
Zweck
Diese Skripte ändern Einheiten in Kivitendo von Text-Format zu Unicode-Hochzahlen für ZUGFeRD-Kompatibilität.
Hintergrund
Kivitendo erkennt beim ZUGFeRD-Export nur bestimmte Einheiten als valide. Die korrekten Formate sind:
m²(mit hochgestellter 2) stattm2oderMTKm³(mit hochgestellter 3) stattm3oderMTQ
Dateien
change_m3_to_m_hoch_3.sql- Ändert m3 → m³
Anwendung
Voraussetzungen
- PostgreSQL Zugriff
- Backup der Datenbank (empfohlen!)
Backup erstellen
sudo -u postgres pg_dumpall > /root/postgres_backup_$(date +%Y%m%d_%H%M%S).sql
Skript ausführen
sudo -u postgres psql -d <datenbankname> -f change_m3_to_m_hoch_3.sql
Beispiel für Datenbank "hemi":
cp change_m3_to_m_hoch_3.sql /tmp/
chmod 644 /tmp/change_m3_to_m_hoch_3.sql
sudo -u postgres psql -d hemi -f /tmp/change_m3_to_m_hoch_3.sql
Was wird geändert?
Das Skript führt folgende Schritte aus:
- Entfernt temporär Foreign Key Constraints
- Aktualisiert Einheit in folgenden Tabellen:
units(Einheiten-Stammdaten)parts(Artikel)invoice(Rechnungspositionen)orderitems(Auftragspositionen)delivery_order_items(Lieferscheinpositionen)units_language(Einheiten-Übersetzungen)
- Stellt Foreign Key Constraints wieder her
- Zeigt Statistik der geänderten Datensätze
Sicherheit
✅ Transaction-basiert: Bei Fehler wird automatisch zurückgerollt (ROLLBACK) ✅ Alle referenzierten Tabellen werden aktualisiert ⚠️ Historische Daten werden ebenfalls geändert (Foreign Keys erzwingen das)
Beispiel-Ausgabe
Fertig! m3 -> m³ geändert
tabelle | anzahl
-------------+--------
Artikel: | 31
Rechnungen: | 194
Aufträge: | 162
Erstellt am
2026-01-31
Version
1.0
Description
Languages
PLpgSQL
100%