Files
kaffeekasse-saas/docs/dev-mysql.md
T

2.5 KiB

Lokaler MySQL-Dev-Start

Die Legacy-App kann für Entwicklung gegen MySQL laufen. Dafür gibt es eine Kompatibilitätsschicht, die die verwendeten sqlsrv_*-Funktionen im Dev-Modus auf PDO/MySQL abbildet.

Voraussetzungen

  • PHP CLI mit pdo_mysql.
  • MySQL-Testdatenbank.
  • Keine Produktivdaten und keine Produktivpasswörter im Repository.

In dieser VS-Code-Server-Umgebung wurde PHP lokal unter .local/ entpackt, weil sudo nicht passwordless verfügbar war. .local/ wird von Git ignoriert.

Umgebungsvariablen

export APP_DB_DRIVER=mysql
export DB_HOST="example.mysql.host"
export DB_PORT="3306"
export DB_NAME="example_database"
export DB_USER="example_user"
export DB_PASS="example_password"
export DEV_AUTH_EMAIL="admin@test.local"
export DEV_AUTH_NAME="Test Admin"
# Optional: Standard ist var/sessions im Repository.
export APP_SESSION_PATH="/path/to/writable/sessions"
# Optional für Passwort-Reset und E-Mail-Verifikation.
export APP_BASE_URL="http://127.0.0.1:8080"
export APP_MAIL_TRANSPORT="log"
export APP_MAIL_LOG_DIR="/path/to/writable/mail-log"
export APP_MAIL_FROM="noreply@example.test"
export APP_MAIL_FROM_NAME="Kaffeeliste"

Testdatenbank initialisieren

Migrationen anwenden:

php scripts/migrate.php

Dev-Admin und Basistestdaten anlegen:

php scripts/init-mysql-dev.php

In der aktuellen lokalen Umgebung:

LD_LIBRARY_PATH="$PWD/.local/php/usr/lib/x86_64-linux-gnu" \
  "$PWD/.local/php/usr/bin/php8.3" \
  -c "$PWD/.local/php-dev.ini" \
  scripts/init-mysql-dev.php

Server starten

HOST=127.0.0.1 PORT=8080 scripts/run-dev-server.sh

Danach ist die App unter http://127.0.0.1:8080/ erreichbar. In VS Code kann der Port über die Ports-Ansicht weitergeleitet werden.

Hinweise

  • Der Dev-Login umgeht AD/LDAP und nutzt DEV_AUTH_EMAIL.
  • Der Dev-Mailversand nutzt standardmäßig APP_MAIL_TRANSPORT=log und legt Nachrichten unter var/mail ab. Für Produktion kann zunächst APP_MAIL_TRANSPORT=mail mit passendem APP_BASE_URL und Absender gesetzt werden; eine SMTP-/Provider-Anbindung bleibt ein späterer Betriebsausbau.
  • Die Tabellen werden über database/migrations/ angelegt.
  • database/mysql-dev-schema.sql bleibt als historische Dev-Schema-Baseline erhalten; der aktive Weg ist scripts/migrate.php.
  • Session-Dateien liegen standardmäßig unter var/sessions; var/ wird von Git ignoriert.
  • Der Dev-Modus ist nur für lokale Tests gedacht, nicht für Produktion.