3. Datenbanken, Websites und Terminals
3.2 Die Datenbank eines Projekts
Eine Datenbank und ein Benutzer nur für das Projekt, die in die Datei .env geschriebene Verbindung, Sicherungskopien und Wiederherstellung.
In der App: «Projekte»
Kurz gesagt
- Jedes Projekt hat eine eigene Datenbank und einen eigenen Benutzer, mit einem vom Kit erzeugten Passwort.
- „In .env schreiben“ trägt die Verbindung in die .env-Datei des Projekts ein, nachdem es dir gezeigt hat, was sich ändert.
- „.env-Block kopieren“ kopiert dieselben Zeilen, zum Einfügen, wo du willst.
- „Exportieren“ speichert eine Kopie der Datenbank; „Wiederherstellen…“ spielt sie zurück.
- Alles geschieht unter Projekte › das Projekt › Abschnitt „Datenbanken“.

Datenbank, Benutzer, Passwort und Adresse des Projekts, „In .env schreiben“ und die Kopien, mit „Exportieren“ und „Wiederherstellen…“.
Datenbank und Benutzer erstellen
Der Abschnitt hat einen Teil für MySQL und einen für MongoDB (mit „vom Projekt genutzt“, wenn das Kit erkennt, dass das Projekt ihn nutzt). Verwendet das Projekt SQLite, erklärt ein Hinweis, dass die Datenbank eine Datei des Projekts ist und kein Server nötig ist.
- Drück „Datenbank und Benutzer erstellen“ im Teil des Servers, den du brauchst.
- Das Kit installiert und startet den Server bei Bedarf und erstellt dann eine Datenbank und einen Benutzer mit dem Namen des Projekts (Kleinbuchstaben, Ziffern und Unterstrich: gestionale-fatture wird zu gestionale_fatture) und ein Passwort mit 32 Zeichen.
- Der Teil zeigt „Datenbank“, „Benutzer“, „Passwort“ und „Zeichenfolge“ (verborgen, mit „Anzeigen“ und „Kopieren“) und „Adresse“.
Die Verbindung in die .env-Datei schreiben
- Drück „In .env schreiben“.
- „Zeilen von .env, die sich ändern“ erscheint: für jeden Schlüssel der alte Wert durchgestrichen und der neue (Passwörter verborgen).
- Drück „Schreiben“ zum Bestätigen oder „Abbrechen“.
Das Kit wählt die Schlüssel anhand deiner .env-Datei:
| Wenn die .env… | MySQL schreibt | MongoDB schreibt |
|---|---|---|
| bereits DB_CONNECTION= enthält (Laravel-Stil) | DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD | DB_CONNECTION=mongodb, DB_DATABASE, MONGODB_URI |
| es nicht enthält | DATABASE_URL | MONGODB_URI |
.envDB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=gestionale
DB_USERNAME=gestionale
DB_PASSWORD=3f9c…(32 vom Kit erzeugte Zeichen).envDATABASE_URL=mysql://portale:3f9c…@127.0.0.1:3306/portale
MONGODB_URI=mongodb://portale:a71e…@127.0.0.1:27017/portale?authSource=portale- Existiert die .env-Datei nicht, wird sie durch Kopieren von .env.example erstellt. Die anderen Zeilen und die Kommentare bleiben erhalten.
- Ist die Verbindung bereits die richtige: „Die Datei .env hat diese Verbindung bereits.“
- „.env-Block kopieren“ daneben ändert die Datei nicht: Es kopiert die Zeilen der Tabelle (DB_* für Laravel, sonst DATABASE_URL oder MONGODB_URI) zum Einfügen in eine andere .env, eine Konfigurationsdatei oder ein Terminal; „Kopiert“ erscheint. Die Zeilen enthalten das Passwort: Das Kit liest sie erst, wenn du den Knopf drückst.
Kopien und Wiederherstellung
- Drück im Teil „Kopien“ auf „Exportieren“: „Kopie gespeichert: …“ erscheint und die Kopie wird der Liste hinzugefügt.
- Um zu einer Kopie zurückzukehren, drück „Wiederherstellen…“ neben der Datei und bestätige: „Die aktuellen Daten werden ersetzt.“
- Vor dem Wiederherstellen kopiert das Kit, was die Datenbank jetzt enthält, nach <Datenbank>-prima-del-ripristino-<Datum und Uhrzeit>: Gelingt die Kopie nicht, wird nicht wiederhergestellt. So machst du die Wiederherstellung der falschen Datei rückgängig, indem du diese Kopie wiederherstellst.
- „Ordner der Kopien öffnen“ öffnet den Ordner: Um eine Kopie von außerhalb (von einem Kollegen, aus einem anderen Kit) wiederherzustellen, leg sie dort ab, und sie erscheint in der Liste.
Von den Sicherheitskopien („prima-del-ripristino“ und „prima-del-cambio-di-versione“) behält das Kit die letzten 3 jeder Art und löscht die älteren. Die mit „Exportieren“ erstellten Kopien werden nie gelöscht.
Die Serverversion wechseln
Wenn du mehrere Versionen von MySQL oder MongoDB hast, wählt das Menü „Serverversion“, auf welcher die Datenbank des Projekts läuft. Wenn du sie wechselst, werden Datenbank und Benutzer auch auf der neuen Version angelegt, leer: Die Daten überträgst du mit einer Kopie (Exportieren auf der alten, Wiederherstellen auf der neuen). Ist die gewählte Version nicht installiert, erscheint „… installieren“. Vor dem Wechsel kopiert das Kit die Datenbank auf der Version, die es verlässt, nach <Datenbank>-prima-del-cambio-di-versione-<Datum und Uhrzeit>: Gelingt die Kopie nicht, ändert sich die Version nicht (ist diese Version nicht mehr installiert, gibt es nichts zu kopieren, und der Wechsel erfolgt).
Unter der Haube
- Namen, Passwörter und Versionen der Projektdatenbank: data\projects\<Projekt>\private\db.json, auf NTFS nur für deinen Benutzer lesbar.
- MySQL: Benutzer mit caching_sha2_password auf localhost und 127.0.0.1, alle Rechte nur auf der Datenbank des Projekts. MongoDB: Rolle dbOwner auf der Datenbank, authSource gleich dem Namen der Datenbank.
- MySQL-Kopien sind .sql-Dateien, erstellt mit mysqldump (--single-transaction, mit Routinen, Triggern und Events); MongoDB-Kopien sind .archive.gz-Dateien, erstellt mit mongodump. Die MySQL-Wiederherstellung läuft mit dem Benutzer des Projekts und ohne Client-Befehle; die MongoDB-Wiederherstellung betrifft nur die Datenbank des Projekts.
- MySQL-Sicherheitskopien verwenden mysqldump --force: Ein defektes Objekt (eine View auf einer gelöschten Tabelle) hält die Kopie des Rests nicht auf. Vor einer MySQL-Wiederherstellung entfernt der Administrator Views, Trigger, Routinen und Events nur der Datenbank des Projekts (die von root könnte der Benutzer des Projekts nicht ersetzen); die Kopie legt sie als Benutzer des Projekts neu an.
- Wenn du das Projekt in der App löschst, löscht das Kit auch Datenbank und Benutzer auf jeder Version, auf der es sie angelegt hatte.