update 20.10.2025
This commit is contained in:
parent
8c11130b5d
commit
a939cd51ef
616 changed files with 84821 additions and 4121 deletions
250
dev/code/Services/CLEAR_DATA_GUIDE.md
Normal file
250
dev/code/Services/CLEAR_DATA_GUIDE.md
Normal file
|
|
@ -0,0 +1,250 @@
|
|||
# Business Data Clear Guide
|
||||
|
||||
## Übersicht
|
||||
|
||||
Die neuen Löschfunktionen ermöglichen es, gespeicherte Business Structure Daten sicher und kontrolliert zu entfernen. Dies ist besonders nützlich wenn:
|
||||
|
||||
- Daten neu berechnet werden müssen
|
||||
- Fehlerhafte Berechnungen korrigiert werden sollen
|
||||
- Speicherplatz freigegeben werden muss
|
||||
- Tests mit sauberen Daten durchgeführt werden sollen
|
||||
|
||||
## Verfügbare Commands
|
||||
|
||||
### 1. BusinessStoreOptimized mit --clear Option
|
||||
|
||||
```bash
|
||||
php artisan business:store-optimized {month} {year} --clear
|
||||
```
|
||||
|
||||
**Funktionalität:**
|
||||
|
||||
- Löscht bestehende Daten für den angegebenen Monat/Jahr
|
||||
- Berechnet anschließend neue Daten
|
||||
- Alles in einem einzigen Command-Ausführung
|
||||
|
||||
**Beispiel:**
|
||||
|
||||
```bash
|
||||
# Löscht Oktober 2024 Daten und berechnet sie neu
|
||||
php artisan business:store-optimized 10 2024 --clear
|
||||
```
|
||||
|
||||
### 2. Separates Clear Command
|
||||
|
||||
```bash
|
||||
php artisan business:clear-data {month} {year} [--force]
|
||||
```
|
||||
|
||||
**Funktionalität:**
|
||||
|
||||
- Löscht nur die Daten, berechnet nichts neu
|
||||
- Standardmäßig mit Sicherheitsabfrage
|
||||
- `--force` Option für automatisierte Skripte
|
||||
|
||||
**Beispiele:**
|
||||
|
||||
```bash
|
||||
# Mit Bestätigung
|
||||
php artisan business:clear-data 10 2024
|
||||
|
||||
# Ohne Bestätigung (für Skripte)
|
||||
php artisan business:clear-data 10 2024 --force
|
||||
```
|
||||
|
||||
## Was wird gelöscht?
|
||||
|
||||
### 1. UserBusinessStructure
|
||||
|
||||
- Die Hauptstruktur für den angegebenen Monat/Jahr
|
||||
- Enthält die hierarchische Benutzerstruktur
|
||||
- Metadata wie completed Status
|
||||
|
||||
### 2. UserBusiness Einträge
|
||||
|
||||
- Alle Business-Daten der Benutzer für den Zeitraum
|
||||
- Provisionsberechnungen
|
||||
- Qualifikationsdaten
|
||||
- Verkaufsvolumen und Punkte
|
||||
|
||||
## Sicherheitsfeatures
|
||||
|
||||
### Validierung
|
||||
|
||||
- Monat muss zwischen 1-12 liegen
|
||||
- Jahr muss zwischen 2020 und aktuelles Jahr + 1 liegen
|
||||
- Prüfung auf Existenz der Daten vor Löschung
|
||||
|
||||
### Bestätigungen
|
||||
|
||||
- Standardmäßig Sicherheitsabfrage vor Löschung
|
||||
- Anzeige der zu löschenden Datenmengen
|
||||
- `--force` Option zum Überspringen der Abfrage
|
||||
|
||||
### Sichere Löschung
|
||||
|
||||
- Löschung in korrekter Reihenfolge (Child → Parent)
|
||||
- Transaktionale Sicherheit
|
||||
- Garbage Collection nach Löschung
|
||||
|
||||
## Logging & Monitoring
|
||||
|
||||
### Detaillierte Ausgaben
|
||||
|
||||
```
|
||||
Found structure ID: 123
|
||||
- UserBusiness records: 1,234
|
||||
- Users in structure: 567
|
||||
- Completed: Yes
|
||||
|
||||
Deleting 1,234 UserBusiness records...
|
||||
✓ UserBusiness records deleted
|
||||
Deleting UserBusinessStructure...
|
||||
✓ UserBusinessStructure deleted
|
||||
✅ Successfully cleared all business data in 45.67ms
|
||||
```
|
||||
|
||||
### Memory-Monitoring
|
||||
|
||||
```
|
||||
Memory - Current: 128.5 MB | Peak: 145.2 MB
|
||||
```
|
||||
|
||||
## Anwendungsszenarien
|
||||
|
||||
### 1. Fehlerkorrektur
|
||||
|
||||
```bash
|
||||
# Bei fehlerhaften Berechnungen
|
||||
php artisan business:clear-data 10 2024 --force
|
||||
php artisan business:store-optimized 10 2024
|
||||
```
|
||||
|
||||
### 2. Neuberechnung mit aktuellen Daten
|
||||
|
||||
```bash
|
||||
# Alles in einem Schritt
|
||||
php artisan business:store-optimized 10 2024 --clear
|
||||
```
|
||||
|
||||
### 3. Automation/Scripts
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Monatliche Neuberechnung
|
||||
MONTH=$(date +%m)
|
||||
YEAR=$(date +%Y)
|
||||
|
||||
echo "Clearing data for $MONTH/$YEAR"
|
||||
php artisan business:clear-data $MONTH $YEAR --force
|
||||
|
||||
echo "Calculating new data"
|
||||
php artisan business:store-optimized $MONTH $YEAR
|
||||
```
|
||||
|
||||
### 4. Testing
|
||||
|
||||
```bash
|
||||
# Saubere Testumgebung
|
||||
php artisan business:clear-data 1 2024 --force
|
||||
php artisan business:clear-data 2 2024 --force
|
||||
# ... Setup für Tests
|
||||
```
|
||||
|
||||
## Integration mit Scheduler
|
||||
|
||||
```php
|
||||
// In app/Console/Kernel.php
|
||||
|
||||
// Monatliche Neuberechnung am 5. jeden Monats
|
||||
$schedule->command('business:store-optimized', [
|
||||
date('m', strtotime('-1 month')),
|
||||
date('Y', strtotime('-1 month')),
|
||||
'--clear'
|
||||
])->monthlyOn(5, '02:00')
|
||||
->withoutOverlapping()
|
||||
->runInBackground();
|
||||
```
|
||||
|
||||
## Error Handling
|
||||
|
||||
### Häufige Fehler
|
||||
|
||||
**1. Ungültiger Monat/Jahr:**
|
||||
|
||||
```
|
||||
Invalid month. Must be between 1 and 12.
|
||||
Invalid year. Must be between 2020 and 2025.
|
||||
```
|
||||
|
||||
**2. Keine Daten gefunden:**
|
||||
|
||||
```
|
||||
No stored business structure found for the specified month/year
|
||||
```
|
||||
|
||||
**3. Benutzer-Abbruch:**
|
||||
|
||||
```
|
||||
Operation cancelled by user
|
||||
```
|
||||
|
||||
### Exception Handling
|
||||
|
||||
- Vollständige Stack-Traces bei Fehlern
|
||||
- Graceful Rollback bei Datenbankfehlern
|
||||
- Detaillierte Error-Logs für Debugging
|
||||
|
||||
## Best Practices
|
||||
|
||||
### 1. Backup vor Löschung
|
||||
|
||||
```bash
|
||||
# Backup der wichtigen Tabellen
|
||||
mysqldump database user_businesses > backup_$(date +%Y%m%d).sql
|
||||
mysqldump database user_business_structures >> backup_$(date +%Y%m%d).sql
|
||||
```
|
||||
|
||||
### 2. Stufenweise Löschung bei großen Datenmengen
|
||||
|
||||
```bash
|
||||
# Bei sehr großen Strukturen
|
||||
php artisan business:clear-data 1 2024 --force
|
||||
sleep 10
|
||||
php artisan business:clear-data 2 2024 --force
|
||||
sleep 10
|
||||
# ...
|
||||
```
|
||||
|
||||
### 3. Monitoring der Performance
|
||||
|
||||
```bash
|
||||
# Mit Zeitmessung
|
||||
time php artisan business:clear-data 10 2024 --force
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Memory Issues
|
||||
|
||||
- Erhöhe PHP Memory Limit vor Löschung großer Strukturen
|
||||
- Nutze Garbage Collection zwischen Commands
|
||||
|
||||
### Performance
|
||||
|
||||
- Lösche Daten außerhalb der Geschäftszeiten
|
||||
- Nutze `--force` für automatisierte Prozesse
|
||||
- Überwache Datenbank-Performance während Löschung
|
||||
|
||||
### Rollback
|
||||
|
||||
- Verwende Datenbank-Backups für kritische Rollbacks
|
||||
- Teste Löschprozess erst in Staging-Umgebung
|
||||
|
||||
## Support
|
||||
|
||||
Bei Problemen:
|
||||
|
||||
1. Prüfe die Log-Ausgaben auf spezifische Fehlermeldungen
|
||||
2. Verwende `--force` nicht in produktiven Umgebungen ohne Tests
|
||||
3. Stelle sicher, dass keine anderen Prozesse gleichzeitig auf die Daten zugreifen
|
||||
Loading…
Add table
Add a link
Reference in a new issue