MySQL und PostgreSQL im Emacs

Beruflich wie privat habe ich u.a. mit MariaDB, MySQL oder PostgreSQL Datenbanken zu tun. Diese nutze ich in der Regel mit den jeweiligen CLI Clients, die mit dem DBMS geliefert werden, weil man dafür keine Löcher in Firewalls bohren muss oder Ports über SSH-Verbindungen tunneln.

Tabellenansicht einer MariaDB im Spacemacs mit “truncate-lines”

Als sehr praktisch hat sich aber der SQLi-Mode im Emacs erwiesen, weil dieser eine sehr praktische “toggle-truncate-lines” funktion hat und man in den Ausgaben scrollen, suchen, daraus kopieren usw. kann.

Split-Screen mit Tabellenformat (oben) und MySQL Shell (unten)

Außerdem ist des sehr praktisch, dass man innerhalb des Emacs den Bildschirm teilen kann, um sich z.B. eine Tabellenstruktur anzeigen zu lassen, während man im anderen Bildschirm SQL-Statements formuliert.

Emacs auf dem Datenbankserver via SSH

Wie bereits oben angedeutet besteht einer der Vorteile darin, dass man den Emacs auch auf dem Datenbankserver (oder in entsprechendem Netz auf Backup-Servern o.ä.) installieren und auch über eine einfache SSH-Verbindung nutzen kann.

Ich selbst bevorzuge den Spacemacs, weil er die Funktionalität vom Emacs mit den Tastenkürzeln vom vi kombiniert (siehe auch Evil) und eine einfacherere Konfiguration über vorgefertigte Layer anbietet (siehe SQL Layer).

Eine schöne Übersicht, was alles so geht gibt es in dem Artikel: Setup Emacs as an SQL Database client (dort dann aber ohne die einfache Spacemacs-Konfiguration). Im Artikel Emacs as SQL client with LSP wird im verlinkten Video schön gezeigt, wie man den Emacs als SQL-IDE benutzen kann.

Hat man einmal den Spacemacs installiert, muss man eigentlich nur noch sql unter dotspacemacs/layers () in der .spacemacs hinzufügen. Ich habe das inkl. LSP-Support wie folgt gemacht:

     (sql :variables
          sql-backend 'lsp
          sql-lsp-sqls-workspace-config-path 'workspace)

Für Markdown, LaTeX und Co. benutze ich bereits das YASnippet Modul. Meine MySQL-Snippets habe ich aktuell aber noch in einigen Notizseiten von mir. Potentiell lassen sich aber die wichtigsten Befehle bzw. Vorlagen ablegen und dann auch mit eigenen Tastenkürzeln einsetzen.

Fazit: Der SQLi Mode im Emacs reichert die mitgelieferten CLI-Werkzeuge viele g¨angiger Datenbankmanagementsysteme mit einigen sinnvollen Funktionen, wie saubere Formatierung langer Tabellenzeilen, Scrollen, Suchen aber auch geteilten Bildschirmen und SQL-Sprachunterstützung an, ohne jedoch irgendwelche “Magie”, wie andere GUIs anzuwenden oder auf eine Datenbankverbindung vom eigenen Client auf den Datenbankserver angewiesen zu sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.