deutsche Zeit statt UTC
Dieser Commit ist enthalten in:
83
JOURNAL.md
83
JOURNAL.md
@@ -1210,4 +1210,85 @@ Die Session-Daten werden erst gefüllt, wenn der License Server API implementier
|
||||
- ✅ Login funktioniert wieder nach 2+ Fehlversuchen
|
||||
- ✅ CAPTCHA wird nur angezeigt wenn Keys konfiguriert sind
|
||||
- ✅ Für PoC-Phase ohne CAPTCHA nutzbar
|
||||
- ✅ Produktiv-ready wenn CAPTCHA-Keys eingetragen werden
|
||||
- ✅ Produktiv-ready wenn CAPTCHA-Keys eingetragen werden
|
||||
|
||||
### 2025-06-08: Zeitzone auf Europe/Berlin umgestellt
|
||||
|
||||
**Problem:**
|
||||
- Alle Zeitstempel wurden in UTC gespeichert und angezeigt
|
||||
- Backup-Dateinamen zeigten UTC-Zeit statt deutsche Zeit
|
||||
- Verwirrung bei Zeitangaben im Admin Panel und Logs
|
||||
|
||||
**Lösung:**
|
||||
1. **Docker Container Zeitzone konfiguriert:**
|
||||
- Alle Dockerfiles mit `TZ=Europe/Berlin` und tzdata Installation
|
||||
- PostgreSQL mit `PGTZ=Europe/Berlin` für Datenbank-Zeitzone
|
||||
- Explizite Zeitzone-Dateien in /etc/localtime und /etc/timezone
|
||||
|
||||
2. **Python Code angepasst:**
|
||||
- Import von `zoneinfo.ZoneInfo` für Zeitzonenunterstützung
|
||||
- Alle `datetime.now()` Aufrufe mit `ZoneInfo("Europe/Berlin")`
|
||||
- `.replace(tzinfo=None)` für Kompatibilität mit timezone-unaware Timestamps
|
||||
|
||||
3. **PostgreSQL Konfiguration:**
|
||||
- `SET timezone = 'Europe/Berlin';` in init.sql
|
||||
- Umgebungsvariablen TZ und PGTZ in docker-compose.yaml
|
||||
|
||||
4. **docker-compose.yaml erweitert:**
|
||||
- `TZ: Europe/Berlin` für alle Services
|
||||
|
||||
**Geänderte Dateien:**
|
||||
- `v2_adminpanel/Dockerfile`: Zeitzone und tzdata hinzugefügt
|
||||
- `v2_postgres/Dockerfile`: Zeitzone und tzdata hinzugefügt
|
||||
- `v2_nginx/Dockerfile`: Zeitzone und tzdata hinzugefügt
|
||||
- `v2_lizenzserver/Dockerfile`: Zeitzone und tzdata hinzugefügt
|
||||
- `v2_adminpanel/app.py`: 14 datetime.now() Aufrufe mit Zeitzone versehen
|
||||
- `v2_adminpanel/init.sql`: PostgreSQL Zeitzone gesetzt
|
||||
- `v2/docker-compose.yaml`: TZ Environment-Variable für alle Services
|
||||
|
||||
**Ergebnis:**
|
||||
- ✅ Alle neuen Zeitstempel werden in deutscher Zeit (Europe/Berlin) gespeichert
|
||||
- ✅ Backup-Dateinamen zeigen korrekte deutsche Zeit
|
||||
- ✅ Admin Panel zeigt alle Zeiten in deutscher Zeitzone
|
||||
- ✅ Automatische Anpassung bei Sommer-/Winterzeit
|
||||
- ✅ Konsistente Zeitangaben über alle Komponenten
|
||||
|
||||
**Hinweis:** Nach diesen Änderungen müssen die Docker Container neu gebaut werden:
|
||||
```bash
|
||||
docker-compose down
|
||||
docker-compose build
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### 2025-06-08: Zeitzone-Fix - PostgreSQL Timestamps
|
||||
|
||||
**Problem nach erster Implementierung:**
|
||||
- Trotz Zeitzoneneinstellung wurden Zeiten immer noch in UTC angezeigt
|
||||
- Grund: PostgreSQL Tabellen verwendeten `TIMESTAMP WITHOUT TIME ZONE`
|
||||
|
||||
**Zusätzliche Lösung:**
|
||||
1. **Datenbankschema angepasst:**
|
||||
- Alle `TIMESTAMP` Spalten auf `TIMESTAMP WITH TIME ZONE` geändert
|
||||
- Betrifft: created_at, timestamp, started_at, ended_at, last_heartbeat, etc.
|
||||
- Migration für bestehende Datenbanken berücksichtigt
|
||||
|
||||
2. **SQL-Abfragen vereinfacht:**
|
||||
- `AT TIME ZONE 'Europe/Berlin'` nicht mehr nötig
|
||||
- PostgreSQL handhabt Zeitzonenkonvertierung automatisch
|
||||
|
||||
**Geänderte Datei:**
|
||||
- `v2_adminpanel/init.sql`: Alle TIMESTAMP Felder mit WITH TIME ZONE
|
||||
|
||||
**Wichtig:** Bei bestehenden Installationen muss die Datenbank neu initialisiert oder manuell migriert werden:
|
||||
```sql
|
||||
ALTER TABLE customers ALTER COLUMN created_at TYPE TIMESTAMP WITH TIME ZONE;
|
||||
ALTER TABLE licenses ALTER COLUMN created_at TYPE TIMESTAMP WITH TIME ZONE;
|
||||
ALTER TABLE sessions ALTER COLUMN started_at TYPE TIMESTAMP WITH TIME ZONE;
|
||||
ALTER TABLE sessions ALTER COLUMN last_heartbeat TYPE TIMESTAMP WITH TIME ZONE;
|
||||
ALTER TABLE sessions ALTER COLUMN ended_at TYPE TIMESTAMP WITH TIME ZONE;
|
||||
ALTER TABLE audit_log ALTER COLUMN timestamp TYPE TIMESTAMP WITH TIME ZONE;
|
||||
ALTER TABLE backup_history ALTER COLUMN created_at TYPE TIMESTAMP WITH TIME ZONE;
|
||||
ALTER TABLE login_attempts ALTER COLUMN first_attempt TYPE TIMESTAMP WITH TIME ZONE;
|
||||
ALTER TABLE login_attempts ALTER COLUMN last_attempt TYPE TIMESTAMP WITH TIME ZONE;
|
||||
ALTER TABLE login_attempts ALTER COLUMN blocked_until TYPE TIMESTAMP WITH TIME ZONE;
|
||||
```
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren