Finanzmanager/migrations/001_grundgeruest.sql
fds2610-bot b1712bb7ea Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB
Docker Compose mit drei Services (nginx auf Port 8000), Migrationsmechanik,
Update- und Backup-Skript. Anwendung: Router mit CSRF-Prüfung, Anmeldung und
Ersteinrichtung, zentraler Einstellungsdialog mit Reitern, ein- und
ausschaltbares Debug-Log mit Maskierung von Zugangsdaten.

Layout nach Vorbild des FinanzManagers: feste Navigation links,
Werkzeugleiste oben, Tab-Leiste; Farbschema hell/dunkel/System.

Tests: 51 PHP-Prüfungen und 7 Playwright-Tests, alle grün.
2026-08-09 20:21:42 +02:00

35 lines
1.6 KiB
SQL

-- Grundgerüst: Benutzer und zentrale Einstellungen.
--
-- Fachliche Tabellen (Konten, Kategorien, Buchungen …) kommen in Phase 1 und 2
-- als eigene Migrationen dazu.
CREATE TABLE IF NOT EXISTS benutzer (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
benutzername VARCHAR(64) NOT NULL,
anzeigename VARCHAR(128) NOT NULL DEFAULT '',
passwort_hash VARCHAR(255) NOT NULL,
aktiv TINYINT(1) NOT NULL DEFAULT 1,
letzte_anmeldung DATETIME NULL,
erstellt_am DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id),
UNIQUE KEY uq_benutzername (benutzername)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- Alle Programmeinstellungen an einer Stelle; der Einstellungsdialog hängt
-- seine Reiter über das Feld "bereich" ein.
CREATE TABLE IF NOT EXISTS einstellungen (
schluessel VARCHAR(64) NOT NULL,
wert TEXT NULL,
bereich VARCHAR(32) NOT NULL DEFAULT 'allgemein',
geaendert_am DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (schluessel)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO einstellungen (schluessel, wert, bereich) VALUES
('mandant_name', 'Privat', 'allgemein'),
('waehrung', 'EUR', 'allgemein'),
('erster_monat', '1', 'buchhaltung'),
('darstellung_thema', 'system', 'darstellung'),
('zeilen_pro_seite', '100', 'darstellung'),
('debug_log_aktiv', '0', 'diagnose')
ON DUPLICATE KEY UPDATE schluessel = schluessel;