phpMyAdmin ist eine webbasierte Benutzeroberfläche zur Verwaltung von MySQL- und MariaDB-Datenbanken.
In meiner lokalen Entwicklungsumgebung wird phpMyAdmin zusammen mit XAMPP verwendet.
Es eignet sich insbesondere zum Anzeigen und Kontrollieren von Datenbanken, Tabellen, Datensätzen, Benutzerrechten und SQL-Abfragen.
Nach dem Start von Apache und MariaDB kann phpMyAdmin normalerweise im Browser aufgerufen werden:
http://localhost/phpmyadmin/
phpMyAdmin selbst ist keine Datenbank.
Es stellt lediglich eine grafische Oberfläche für den Zugriff auf MySQL bzw. MariaDB bereit.
Die Oberfläche besteht im Wesentlichen aus:
Nach Auswahl einer Datenbank werden deren Tabellen und weitere Eigenschaften angezeigt.
In der linken Navigation werden die verfügbaren Datenbanken angezeigt.
Nach Auswahl einer Datenbank können unter anderem betrachtet werden:
Bei RoWaBase ist insbesondere die Datenbank:
rowabase
relevant.
Über den Bereich Struktur kann geprüft werden, welche Spalten eine Tabelle besitzt.
Angezeigt werden beispielsweise:
Das ist hilfreich, um nach einer Laravel-Migration zu kontrollieren, ob die erwartete Tabellenstruktur tatsächlich vorhanden ist.
Über Anzeigen können die gespeicherten Datensätze einer Tabelle betrachtet werden.
Dies eignet sich beispielsweise zur Kontrolle von Testdaten, die über Laravel Tinker erzeugt wurden.
Beispiel:
php artisan tinker
Ein dort gespeicherter Datensatz kann anschließend in phpMyAdmin kontrolliert werden.
phpMyAdmin besitzt einen eigenen Bereich SQL.
Dort können SQL-Anweisungen direkt ausgeführt werden.
Beispiel:
SELECT * FROM geschaeftspartner;
Oder:
SELECT * FROM objekte ORDER BY id;
Direkte SQL-Abfragen sind besonders für Kontrollen und gezielte Auswertungen hilfreich.
phpMyAdmin erlaubt auch direkte Änderungen an Tabellen und Datenbankstrukturen.
Dazu gehören beispielsweise:
Bei Projekten wie RoWaBase sollten Änderungen an der Datenbankstruktur jedoch grundsätzlich nicht direkt über phpMyAdmin durchgeführt werden.
Stattdessen werden Laravel-Migrationen verwendet.
Beispiel:
php artisan make:migration update_geschaeftspartner_grunddaten --table=geschaeftspartner
Anschließend:
php artisan migrate --database=mysql_migration --pretend
und nach der Kontrolle:
php artisan migrate --database=mysql_migration
Dadurch bleiben Strukturänderungen nachvollziehbar und Bestandteil des Projektstands.
Für RoWaBase gilt deshalb grundsätzlich:
Laravel verändert die Datenbankstruktur.
phpMyAdmin dient hauptsächlich zum Ansehen, Prüfen und Analysieren der Datenbank.
Damit vermeiden wir, dass die tatsächliche Datenbankstruktur von den Laravel-Migrationen abweicht.
MariaDB kann unterschiedliche Benutzer mit unterschiedlichen Berechtigungen verwenden.
Bei RoWaBase werden die Aufgaben bewusst getrennt.
Beispielsweise:
rowabase_app
für den normalen Anwendungszugriff und eine separate Datenbankverbindung für Migrationen.
Die Anwendung benötigt dadurch nicht automatisch Berechtigungen zum Erstellen, Löschen oder Verändern von Tabellen.
phpMyAdmin kann zur Kontrolle der vorhandenen Benutzer und Berechtigungen verwendet werden.
Je nach Benutzer können unterschiedliche Rechte vergeben werden.
Beispiele:
SELECT INSERT UPDATE DELETE CREATE ALTER DROP INDEX
Ein normaler Anwendungsbenutzer benötigt typischerweise nur die Rechte, die für den laufenden Betrieb tatsächlich erforderlich sind.
Strukturänderungen können über einen gesonderten Benutzer durchgeführt werden.
phpMyAdmin kann SQL-Dateien importieren.
Typische Anwendungsfälle:
Vor einem Import sollte geprüft werden, welche Datenbank ausgewählt ist und welche Tabellen oder Daten durch den Import verändert werden.
Datenbanken und Tabellen können über phpMyAdmin exportiert werden.
Ein häufig verwendetes Format ist:
SQL
Ein SQL-Export kann sowohl Tabellenstrukturen als auch Daten enthalten.
Exporte können beispielsweise für Sicherungen oder zur Analyse einer Datenbank verwendet werden.
Bei Datenbanken und Tabellen spielen Zeichensatz und Kollation eine wichtige Rolle.
RoWaBase verwendet:
utf8mb4
mit:
utf8mb4_unicode_ci
Dies war beispielsweise auch in der Ausgabe der Laravel-Migrationen sichtbar:
default character set utf8mb4 collate 'utf8mb4_unicode_ci'
phpMyAdmin ermöglicht eine einfache Kontrolle dieser Einstellungen.
Primärschlüssel werden in Laravel häufig folgendermaßen definiert:
$table->id();
MariaDB erzeugt daraus typischerweise einen automatisch hochgezählten Primärschlüssel.
In phpMyAdmin ist dies als:
AUTO_INCREMENT
erkennbar.
phpMyAdmin zeigt ebenfalls an, ob eine Spalte leer beziehungsweise NULL sein darf.
Laravel:
$table->string('vorname')->nullable();
führt beispielsweise zu einer Spalte, die NULL enthalten darf.
Das ist bei RoWaBase insbesondere für das kontaktorientierte Geschäftspartner-Modell wichtig, da dort bewusst nur wenige Angaben zwingend erforderlich sein sollen.
Bei der Entwicklung von RoWaBase kann phpMyAdmin nach einer Migration zur Kontrolle verwendet werden.
Typischer Ablauf:
Migration erstellen
↓
Migration bearbeiten
↓
php -l ...
↓
php artisan migrate --database=mysql_migration --pretend
↓
SQL-Ausgabe kontrollieren
↓
php artisan migrate --database=mysql_migration
↓
Tabellenstruktur in phpMyAdmin kontrollieren
phpMyAdmin ersetzt dabei weder Laravel-Migrationen noch Git.
Es bietet eine zusätzliche Sicht auf den tatsächlichen Zustand der MariaDB-Datenbank.
phpMyAdmin stellt die grafische Verwaltungsoberfläche bereit.
Das eigentliche Datenbanksystem ist bei RoWaBase:
Laravel greift über seine Datenbankverbindungen direkt auf MariaDB zu.
Migrationen, Models und Eloquent werden dokumentiert unter:
Die lokale phpMyAdmin-Installation ist Bestandteil der XAMPP-Entwicklungsumgebung.
Weitere Informationen:
phpMyAdmin ist bei RoWaBase vor allem das Fenster zur Datenbank.
Strukturänderungen werden über Laravel-Migrationen durchgeführt. phpMyAdmin dient dazu, den tatsächlichen Datenbankzustand anzusehen, zu kontrollieren und bei Bedarf gezielt zu analysieren.