Zum Inhalt springen
Alle Anleitungen

Apps ·

Datenbank im Panel durchsuchen und abfragen

Die Datenbankkonsole auf jeder PostgreSQL-, MariaDB-, MySQL- und Redis-App und auf Apps mit mitgelieferter Datenbank nutzen: Tabellen durchsehen, SQL ausführen, Redis-Keys ansehen, Grenzen kennen.

Jede Datenbank, die du bei uns betreibst, hat eine Konsole im Panel: Tabellen und Zeilen durchsehen, SQL ausführen, bei Redis Keys durchsuchen und Befehle senden. Nichts zu installieren, kein Port zu öffnen, kein Client einzurichten. Diese Anleitung zeigt, wo die Konsole ist, was sie kann und wo ihre Grenzen liegen.

Wo sie zu finden ist

Öffne die App unter Apps im Panel. Die Karte Datenbankkonsole erscheint, sobald die App läuft, bei:

  • den Datenbankprodukten selbst: PostgreSQL, MariaDB, MySQL und Redis;
  • Apps, die ihre eigene Datenbank mitbringen: WordPress, Ghost, Nextcloud, Gitea, Mattermost, Mealie, Umami, Miniflux, Matomo, Paperless-ngx, Wiki.js, Vikunja und FreshRSS. Dort öffnet die Konsole die mitgelieferte Datenbank, dieselbe, die die App selbst benutzt.

Das Badge im Kopf der Karte nennt die Engine und die geöffnete Datenbank. MySQL zeigt alle Schemata, weil ein frischer MySQL-Server keine eigene Datenbank hat, bis du eine anlegst.

Tabellen durchsehen

Der Reiter Tabellen listet jede Tabelle mit einer geschätzten Zeilenzahl. Klicke eine an, um die ersten 50 Zeilen zu sehen, mit Spaltenname und -typ im Kopf. Mit den Pfeilen unter dem Raster blätterst du durch größere Tabellen.

Werte werden so angezeigt, wie die Datenbank sie liefert; NULL ist als solches markiert. Lange Werte werden im Raster abgeschnitten; fahre mit der Maus über eine Zelle, um alles zu sehen.

SQL ausführen

Wechsle zum Reiter SQL, tippe eine Anweisung und klicke auf Ausführen oder drücke Strg+Enter (Cmd+Enter auf dem Mac).

  • Eine lesende Abfrage (SELECT, SHOW, EXPLAIN, WITH und so weiter) kommt als Raster zurück. Es werden bis zu 5.000 Zeilen angezeigt; für mehr setze ein LIMIT.
  • Alles andere läuft so, wie es dasteht, und zeigt die Statuszeile der Engine, etwa UPDATE 3 oder Query OK, 1 row affected.
  • Fehler kommen genau so zurück, wie die Datenbank sie meldet, mit der Zeilennummer, an der sie abgebrochen hat.
  • Ein Lauf wird nach 20 Sekunden und nach 2 MB Ausgabe abgeschnitten.

Jeder Lauf ist eine eigene Sitzung; ein BEGIN in einem Lauf gilt nicht im nächsten. Packe eine ganze Transaktion in einen Lauf. Auf MySQL und MariaDB werden Anweisungen sofort committed, wie in jedem Client mit eingeschaltetem Autocommit.

Der eingegebene Text bleibt im Feld, solange die Seite offen ist, sodass du eine Abfrage verfeinern kannst, ohne sie neu zu tippen.

Redis

Bei Redis hat die Karte stattdessen Keys und Befehle.

  • Keys listet die Keys, die auf ein Muster passen, standardmäßig *. Grenze es mit dem üblichen Redis-Globbing ein, zum Beispiel session:*, und klicke auf Suchen. Jeder Key zeigt seinen Typ und seine Restlaufzeit; Mehr laden holt den nächsten Schwung.
  • Klicke einen Key an, um seinen Inhalt zu sehen: Strings als Text, Hashes und sortierte Sets als Feld-Wert-Paare, Listen und Sets als Einträge. Große Werte werden teilweise angezeigt, und die Karte sagt das dazu.
  • Befehle führt alles aus, was auch redis-cli könnte, ein Befehl pro Zeile: HGETALL user:1, TTL session:abc, DEL cache:*. Antworten erscheinen als Text; ein falscher Befehl oder Typ zeigt die Redis-Fehlermeldung.

Wer die Abfragen ausführt

Die Konsole verbindet sich aus dem Container deiner eigenen Datenbank heraus, als Verwaltungsbenutzer der Engine: postgres bei PostgreSQL, root bei MariaDB, moco-writable bei MySQL, und mit dem Passwort der Instanz bei Redis. Sie kann also alles, auch eine Tabelle löschen. Es gibt keine Bestätigungsabfrage und kein Rückgängig; lege vor einer Änderung, bei der du dir nicht sicher bist, ein Backup an (siehe App sichern und wiederherstellen).

Jeder Lauf wird mit dem Anfang der Anweisung im Aktivitätsprotokoll deines Kontos festgehalten, sodass du später siehst, wer was ausgeführt hat.

Wann ein richtiger Client besser ist

Die Konsole ist zum Nachsehen, zum Reparieren einer Zeile, zum händischen Ausführen eines Migrationsskripts. Für alles Schwerere verbindest du dich mit deinen eigenen Werkzeugen über die Angaben in der Karte Datenbank-Verbindung: pg_dump und psql, mysqldump und der mariadb-Client, redis-cli. Einen großen Dump einspielen, lange analytische Abfragen und alles, was eine Transaktion über mehrere Läufe braucht, gehört dorthin.

Alles, was du in der Konsole kannst, geht auch von der Kommandozeile mit headpat apps db query <app-id> "<sql>"; siehe Das Panel mit API-Schlüsseln und der CLI automatisieren.

Bereit, es auszuprobieren?

Brauchst du Hilfe?

Wenn etwas aus dieser Anleitung bei dir nicht klappt, schreib uns und wir helfen dir weiter.

Kontakt aufnehmen