Naar inhoud springen
Alle handleidingen

Apps ·

Je database bekijken en bevragen vanuit het paneel

Gebruik de databaseconsole op elke PostgreSQL-, MariaDB-, MySQL- en Redis-app en op apps met een meegeleverde database: blader door tabellen, voer SQL uit, bekijk Redis-keys en ken de grenzen.

Elke database die je bij ons draait heeft een console in het paneel: blader door tabellen en rijen, voer SQL uit, en voor Redis blader je door keys en stuur je commando's. Niets te installeren, geen poort te openen, geen client in te stellen. Deze gids laat zien waar de console staat, wat hij kan en waar zijn grenzen liggen.

Waar je hem vindt

Open de app onder Apps in het paneel. De kaart Databaseconsole verschijnt zodra de app draait, bij:

  • de databaseproducten zelf: PostgreSQL, MariaDB, MySQL en Redis;
  • apps die hun eigen database meebrengen: WordPress, Ghost, Nextcloud, Gitea, Mattermost, Mealie, Umami, Miniflux, Matomo, Paperless-ngx, Wiki.js, Vikunja en FreshRSS. Daar opent de console de meegeleverde database, dezelfde die de app zelf gebruikt.

De badge in de kop van de kaart noemt de engine en de geopende database. MySQL toont alle schema's, omdat een verse MySQL-server geen eigen database heeft totdat je er een aanmaakt.

Door tabellen bladeren

De tab Tabellen toont elke tabel met een geschat aantal rijen. Klik op een tabel om de eerste 50 rijen te zien, met kolomnaam en -type in de kop. Met de pijlen onder het raster blader je door grotere tabellen.

Waarden worden getoond zoals de database ze teruggeeft; NULL is als zodanig gemarkeerd. Lange waarden worden in het raster afgekapt; beweeg de muis over een cel om alles te zien.

SQL uitvoeren

Ga naar de tab SQL, typ een statement en klik op Uitvoeren of druk op Ctrl+Enter (Cmd+Enter op een Mac).

  • Een query die leest (SELECT, SHOW, EXPLAIN, WITH enzovoort) komt terug als raster. Er worden maximaal 5.000 rijen getoond; voeg een LIMIT toe voor alles wat groter is.
  • Al het andere wordt uitgevoerd zoals geschreven en toont de statusregel van de engine, zoals UPDATE 3 of Query OK, 1 row affected.
  • Fouten komen precies terug zoals de database ze meldt, met het regelnummer waar hij stopte.
  • Een run wordt afgebroken na 20 seconden en na 2 MB uitvoer.

Elke run is een eigen sessie; een BEGIN in de ene run geldt dus niet in de volgende. Zet een hele transactie in één run. Op MySQL en MariaDB worden statements meteen gecommit, zoals in elke client met autocommit aan.

De tekst die je typte blijft in het vak staan zolang de pagina open is, zodat je een query kunt bijschaven zonder hem opnieuw te typen.

Redis

Bij Redis heeft de kaart in plaats daarvan Keys en Commando's.

  • Keys toont de keys die op een patroon passen, standaard *. Verfijn met de gebruikelijke Redis-globbing, bijvoorbeeld session:*, en klik op Zoeken. Elke key toont zijn type en resterende levensduur; Meer laden haalt de volgende reeks op.
  • Klik op een key om de inhoud te zien: strings als tekst, hashes en gesorteerde sets als veld-waardeparen, lijsten en sets als items. Grote waarden worden gedeeltelijk getoond, en de kaart zegt dat erbij.
  • Commando's voert alles uit wat redis-cli ook zou doen, één commando per regel: HGETALL user:1, TTL session:abc, DEL cache:*. Antwoorden worden als tekst getoond; een verkeerd commando of type geeft de Redis-foutmelding.

Wie de query's uitvoert

De console verbindt vanuit de container van je eigen database, als de beheergebruiker van de engine: postgres op PostgreSQL, root op MariaDB, moco-writable op MySQL, en met het wachtwoord van de instantie op Redis. Hij kan dus alles, inclusief een tabel verwijderen. Er is geen bevestigingsstap en geen ongedaan maken; maak een back-up voor een wijziging waar je niet zeker van bent (zie Back-up en herstel van je app).

Elke run wordt vastgelegd in het activiteitenlogboek van je account met het begin van het statement, zodat je later kunt zien wie wat heeft uitgevoerd.

Wanneer je beter een echte client gebruikt

De console is er om iets op te zoeken, een rij te herstellen of een migratiescript met de hand te draaien. Voor zwaarder werk verbind je met je eigen tools via de gegevens in de kaart Database-verbinding: pg_dump en psql, mysqldump en de mariadb-client, redis-cli. Een grote dump inladen, langlopende analytische query's en alles wat een transactie over meerdere runs nodig heeft, hoort daar.

Alles wat je in de console kunt, kan ook vanaf de opdrachtregel met headpat apps db query <app-id> "<sql>"; zie Het paneel automatiseren met API-sleutels en de CLI.

Zelf aan de slag?

Hulp nodig?

Lukt iets uit deze gids niet, stuur ons dan een bericht en we helpen je verder.

Neem contact op