118 lines
3.2 KiB
Markdown
118 lines
3.2 KiB
Markdown
# Datenbank-Konfiguration MYP Platform
|
|
|
|
## Übersicht
|
|
|
|
Die MYP Platform verwendet **ausschließlich** eine SQLite-Datenbank:
|
|
|
|
```
|
|
database/myp.db
|
|
```
|
|
|
|
## Konfiguration
|
|
|
|
### Haupt-Konfiguration
|
|
- **Datei**: `config/settings.py`
|
|
- **Variable**: `DATABASE_PATH = os.path.join(BASE_DIR, "database", "myp.db")`
|
|
- **Engine**: SQLite mit WAL-Modus (Write-Ahead Logging)
|
|
|
|
### Sichergestellte Konsistenz
|
|
|
|
Alle folgenden Dateien wurden korrigiert, um ausschließlich `database/myp.db` zu verwenden:
|
|
|
|
#### ✅ Konfigurationsdateien
|
|
- `config/settings.py` - Haupt-Konfiguration
|
|
- `config/app_config.py` - Alternative Flask-Konfiguration (korrigiert)
|
|
|
|
#### ✅ Model- und Datenbankdateien
|
|
- `models.py` - Hauptmodelle und Engine-Konfiguration
|
|
- `database/db_manager.py` - Datenbank-Manager
|
|
|
|
#### ✅ Utilities und Tools
|
|
- `utils/migrate_db.py` - Datenbank-Migration (Legacy-Fallbacks entfernt)
|
|
- `utils/quick_fix.py` - Schnelle Reparatur-Tools (korrigiert)
|
|
- `utils/debug_drucker_erkennung.py` - Debug-Tools (korrigiert)
|
|
- `utils/database_utils.py` - Backup und Wartung
|
|
- `utils/database_cleanup.py` - Cleanup-Manager
|
|
- `utils/database_schema_migration.py` - Schema-Migration
|
|
|
|
### Entfernte/Korrigierte Inkonsistenzen
|
|
|
|
#### 🗑️ Gelöschte Dateien
|
|
- `database/production.db` (leer, 0KB) - entfernt
|
|
|
|
#### 🔧 Korrigierte Fallbacks
|
|
- **Entfernt**: Referenzen zu `app.db`, `database.db`, `data/myp_platform.db`
|
|
- **Korrigiert**: Tabellennamen von `printer` zu `printers`
|
|
- **Vereinheitlicht**: Alle Import-Pfade verwenden `config.settings.DATABASE_PATH`
|
|
|
|
## Verwendung
|
|
|
|
### Datenbank initialisieren
|
|
```python
|
|
from models import init_db
|
|
init_db()
|
|
```
|
|
|
|
### Session verwenden
|
|
```python
|
|
from models import get_cached_session
|
|
|
|
with get_cached_session() as session:
|
|
# Datenbankoperationen
|
|
pass
|
|
```
|
|
|
|
### Backup erstellen
|
|
```python
|
|
from utils.database_utils import DatabaseBackupManager
|
|
|
|
backup_manager = DatabaseBackupManager()
|
|
backup_manager.create_backup()
|
|
```
|
|
|
|
## Optimierungen
|
|
|
|
Die Datenbank ist für Produktionsumgebung optimiert:
|
|
|
|
- **WAL-Modus**: Write-Ahead Logging für bessere Performance
|
|
- **Connection Pooling**: Optimierte Verbindungsverwaltung
|
|
- **Caching**: Intelligent caching system für häufige Abfragen
|
|
- **Auto-Vacuum**: Automatische Speicherbereinigung
|
|
- **Indizierung**: Optimierte Indizes für bessere Performance
|
|
|
|
## Wartung
|
|
|
|
### Automatische Wartung
|
|
- WAL-Checkpoints alle 1000 Seiten
|
|
- Incremental Vacuum alle 60 Minuten
|
|
- Statistik-Updates alle 30 Minuten
|
|
|
|
### Manuelle Wartung
|
|
```bash
|
|
# Migration ausführen
|
|
python utils/migrate_db.py
|
|
|
|
# Schnelle Reparatur
|
|
python utils/quick_fix.py
|
|
|
|
# Diagnose
|
|
python utils/debug_drucker_erkennung.py
|
|
```
|
|
|
|
## Wichtige Hinweise
|
|
|
|
⚠️ **NUR `database/myp.db` verwenden!**
|
|
|
|
- Keine anderen Datenbankdateien verwenden
|
|
- Alle Tools und Scripts sind auf diese Datei konfiguriert
|
|
- Bei Problemen: Backup aus `database/backups/` verwenden
|
|
|
|
🔒 **Backup-Strategie**
|
|
- Automatische Backups in `database/backups/`
|
|
- Vor größeren Operationen manuelles Backup erstellen
|
|
- WAL- und SHM-Dateien gehören zur Datenbank (nicht löschen!)
|
|
|
|
📊 **Monitoring**
|
|
- Log-Dateien in `logs/app/`
|
|
- Performance-Monitoring via `utils/database_utils.py`
|
|
- Health-Checks über API-Endpunkte verfügbar |