Migrationen versioniert: migrations.py mit PRAGMA user_version

- db.py enthält nur noch Schema (neuester Stand), Verbindungen und Start
- Neue Datenbank: direkt im neuesten Schema, erste Liste "Zuhause",
  Version = Anzahl der Schritte
- Bestehende Datenbank: nur fehlende Schritte, jeder genau einmal
- Bisherige Einzel-Umstellungen als Schritt 1 "Altbestand" (prüfen weiter
  selbst, was nötig ist); künftige Schritte werden einfach angehängt
- Tests für Versionsnummer und "Schritt läuft nur einmal"

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
guyg1474andClaude Opus 5.5 committed 2026-10-15 18:09:12 +02:00
1 parent 79cbaab092
commit d28e6b2e4b
4 files changed
+214 -154

No files matched your search

+4 -2
View File
@@ -215,7 +215,8 @@ Quellen und Lizenzen: `docs/CREDITS.md`.
Alles liegt im Ordner `data/`: die Datenbank `p42.db` (Konten, Projekte, Links,
Monitoring, Vorrat, Reisen, Kanban) und die Bilder in `uploads/`. Neue Tabellen und
Spalten legt der Server beim Start selbst an (Migrationen in `backend/app/db.py`). Für ein Backup den Server kurz stoppen und
Spalten legt der Server beim Start selbst an: nummerierte Umstellungen in `backend/app/migrations.py`,
der erreichte Stand steht in der Datenbank (`PRAGMA user_version`). Für ein Backup den Server kurz stoppen und
den Ordner `data/` sichern. Ältere `projects.json`/`links.json` werden beim ersten Start
automatisch übernommen und danach in `*.importiert` umbenannt.
@@ -232,7 +233,8 @@ backend/
requirements.txt
app/main.py FastAPI: API-Routen, Uploads, Auslieferung des Frontends
app/config.py liest config.json
app/db.py SQLite-Schema, Übernahme alter JSON-Daten
app/db.py SQLite-Schema (neuester Stand), Verbindungen, Übernahme alter JSON-Daten
app/migrations.py Nummerierte Umstellungen bestehender Datenbanken (Regel steht oben in der Datei)
app/auth.py Konten, Anmeldung, Benutzerverwaltung
app/projects.py Projekte/Artikel, Bild-Uploads, HTML-Bereinigung
app/links.py Schnellzugriff-Links pro Konto