mysql Integration

This commit is contained in:
2026-03-21 21:53:46 +01:00
parent 9ae81e8347
commit 491605b328
12 changed files with 307 additions and 95 deletions
+23 -9
View File
@@ -15,7 +15,7 @@ Der Installer kann:
- die `.env` speichern
- das SQL-Bundle erzeugen
- Migrationen direkt per PHP ausfuehren, wenn `pdo_sqlsrv` verfuegbar ist
- Migrationen direkt per PHP ausfuehren, wenn die zum Treiber passende PDO-Erweiterung verfuegbar ist
- sich nach erfolgreicher Einrichtung sperren
Die CLI-Skripte unter `scripts/*.php` bleiben als Alternative fuer lokale
@@ -25,7 +25,7 @@ Vorbereitung oder Server mit Shell-Zugriff erhalten.
- PHP 8.2 oder neuer
- Composer fuer den spaeteren Laravel-Bootstrap
- SQL Server oder eine kompatible Datenbank fuer das Zielsystem
- MySQL oder MariaDB fuer das Zielsystem
- Webserver mit Document-Root auf `public/` des Zielprojekts
- Cron-Zugang
- optional: SMTP-Zugang fuer Mails
@@ -38,7 +38,7 @@ Vorbereitung oder Server mit Shell-Zugriff erhalten.
3. Mit `php scripts/prepare-saas-env.php` eine `.env` aus `.env.example` anlegen.
4. Datenbankzugang, URL, Mail und Tenancy-Werte in `saas-app/.env` eintragen.
5. Mit `php scripts/install-saas.php` das SQL-Bundle erzeugen.
6. Das SQL-Bundle manuell in SQL Server ausfuehren oder mit `php scripts/run-sql-migrations.php --server=<server> --database=<db> --username=<user> --password=<pass>` direkt einspielen.
6. Das SQL-Bundle manuell in MySQL/MariaDB importieren oder mit `php scripts/run-sql-migrations.php --connection=mysql --server=<server> --database=<db> --username=<user> --password=<pass>` direkt einspielen.
7. Einen ersten Mandanten anlegen.
8. Einen ersten Benutzer und eine Mitgliedszuordnung anlegen.
9. Spaeter Composer und das eigentliche Laravel-Bootstrap nachziehen.
@@ -49,12 +49,12 @@ Die aktuellen Dateien unter `saas-app/database/migrations/` sind SQL-Skizzen in
PHP-Dateien, keine Laravel-Migrationsklassen. Deshalb gibt es aktuell bewusst
kein `php artisan migrate`.
Stattdessen wird die SQL-Datei ueber Skripte erzeugt:
Stattdessen wird die SQL-Datei passend zum konfigurierten DB-Treiber ueber Skripte erzeugt:
- Installationsvorbereitung inklusive SQL-Bundle:
`php scripts/install-saas.php`
- SQL direkt gegen SQL Server ausfuehren:
`php scripts/run-sql-migrations.php --server=localhost --database=kaffeeliste_saas --username=sa --password=<passwort>`
- SQL direkt gegen MySQL/MariaDB ausfuehren:
`php scripts/run-sql-migrations.php --connection=mysql --server=localhost --database=kaffeeliste_saas --username=root --password=<passwort>`
Die erzeugte SQL-Datei liegt anschliessend unter:
@@ -76,6 +76,7 @@ Die wichtigsten Werte liegen in `saas-app/.env.example` und muessen fuer die
eigene Umgebung angepasst werden:
- `APP_URL`
- `DB_CONNECTION`
- `DB_HOST`, `DB_DATABASE`, `DB_USERNAME`, `DB_PASSWORD`
- `TENANCY_MODE`
- `TENANCY_CENTRAL_DOMAINS`
@@ -88,9 +89,22 @@ eigene Umgebung angepasst werden:
1. Den Inhalt von `saas-app/` auf den Zielserver hochladen.
2. Das Document-Root auf `public/` zeigen lassen.
3. Schreibrechte fuer `saas-app/`, `.env`, `.installer.lock` und `database/migrations/generated/` sicherstellen.
4. Den Installer unter `/install/` aufrufen und die Einrichtung durchfuehren.
5. Nach erfolgreicher Einrichtung den Installer sperren.
6. Die Anwendung einmal per Browser aufrufen und die Grundseiten pruefen.
4. Sicherstellen, dass `open_basedir` nicht nur auf `public/` eingeschraenkt ist. PHP muss mindestens auf den kompletten Ordner `saas-app/` zugreifen duerfen, obwohl der Document-Root auf `public/` zeigt.
5. Den Installer unter `/install/` aufrufen und die Einrichtung durchfuehren.
6. Nach erfolgreicher Einrichtung den Installer sperren.
7. Die Anwendung einmal per Browser aufrufen und die Grundseiten pruefen.
## MySQL Und MariaDB
Der aktuelle Installer ist jetzt auf MySQL/MariaDB ausgelegt:
- Standardwert `DB_CONNECTION=mysql`
- Standardport `3306`
- direkte PHP-Migration ueber `pdo_mysql`
- SQL-Bundle im MySQL/MariaDB-Dialekt
Wenn `pdo_mysql` auf dem Hosting nicht geladen ist, kann das SQL-Bundle weiter
manuell im Datenbank-Tool des Hosters importiert werden.
## Cron- und Batch-Betrieb