1.8 KiB
1.8 KiB
Database
MetalCircle verwendet PostgreSQL. Das Initialschema liegt in db/init/01_initial.sql; spätere Änderungen liegen als nummerierte SQL-Dateien in db/migrations/. Die Anwendung stellt beim Start zusätzlich sicher, dass die aktuellen Feature-Tabellen vorhanden sind. Jede Schemaänderung muss als reproduzierbare Migration vorliegen.
Wichtige Beziehungen:
usersist die Identität für Sessions, Freundschaften, Nachrichten, Kommentare, Attendance, Diary, Badges und Uploads.concertsverweist optional aufvenues, einen Parent-Event und den Ersteller.concert_comments,concert_photosundconcert_attendancehängen an einem Konzert.concert_diaryundconcert_diary_photosbilden persönliche Konzertnotizen.user_badgesenthält Badges und optionale auslösende Konzerte.push_devicesbindet Android-FCM-Tokens an Benutzer und die aktuelle Session.bug_report_submissionsenthält ausschließlich kurzlebige Status-/Nonce-Metadaten zur Duplicate-Vermeidung, keine vollständigen Issues.notification_preferencesenthält DE/EN und individuelle Push-Kategorien (Migration 21).push_notificationsenthält transaktionale Aufträge je Gerät/Session, ohne Klartext-Token oder Nachrichteninhalt (Migration 21). Logout löscht sie per Fremdschlüssel; Aufbewahrung siehe Push Notifications.- Migration 22 erlaubt per partiellem Unique-Index nur einen Alpha-/Beta-/Early-Bird-Patch je Nutzer. Die datumsabhängige Rückbefüllung erfolgt konfigurierbar beim App-Start.
Primäre Indizes unterstützen Konzertdatum, Venue-Suche, Kommentare, Fotos, Attendance, Nachrichten und Einladungen. Backups und Wiederherstellung der PostgreSQL-Daten sind umgebungsabhängig und werden nicht durch diese Repository-Migrationen automatisiert.