Das ist neu in DataGrip 2021.1

Heute stellen wir DataGrip 2021.1 vor – die erste Hauptversion des Jahres und möglicherweise die bedeutendste Version in der Geschichte dieser IDE. Wir sind zuversichtlich, dass v2021.1 nicht nur einen oder mehrere für Sie relevante Schwachpunkte behebt, sondern Sie auch mit neuen Funktionen begeistern wird. Legen wir los!

Bedienoberfläche für Grants

Dieses Feature ist für PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server und Sybase verfügbar.

Wir haben eine Bedienoberfläche zum Bearbeiten von Grants beim Ändern von Objekten hinzugefügt.

Das Fenster Modify user, das Sie mit Cmd/Strg+F6 für einen Benutzer im Datenbank-Explorer aufrufen können, bietet jetzt eine Möglichkeit, Objekten Grants zuzuordnen:

Kontextbezogene Live-Vorlagen

Auswahl verkleinern

Dies ist unsere Lösung für alle, die einfache Anweisungen direkt im Datenbank-Explorer generieren möchten. Allgemeine Live-Vorlagen decken viele Fälle ab, wenn es darum geht, schnell eine einfache Abfrage zu schreiben. Aber wenn Sie im Datenbank-Explorer bereits das gewünschte Objekt ausgewählt haben, sollte es einfachere Möglichkeiten geben, um eine Abfrage zu erstellen, die sich auf dieses Objekt bezieht.

Natürlich verwenden bereits viele andere Tools diesen Mechanismus, um Routineaktivitäten zu vereinfachen, sodass viele Anwender*innen bereits daran gewöhnt sind.

Dieses kurze Video zeigt die Funktionsweise:

Alle Codeausschnitte in dieser Liste sind eigentlich Live-Vorlagen – aber es handelt sich um spezielle Vorlagen, die im Kontext des ausgewählten Objekts generiert werden. Schauen wir uns zum Beispiel die Vorlage Select first N rows from a table (Erste N Zeilen aus einer Tabelle auswählen) an.

Öffnen Sie die Einstellungsseite für Live-Vorlagen und suchen Sie die gewünschte Vorlage:

Select first N rows from a table sieht wie eine allgemeine Vorlage aus (und kann auch als solche verwendet werden). Da diese spezielle Syntax nicht in allen Datenbanken verwendet werden kann, sind die entsprechenden Dialekte für die Vorlage festgelegt. Das Unterscheidungsmerkmal, das die Anwendung dieser Vorlage im Datenbank-Explorer ermöglicht, ist der spezielle Ausdruck dbObjectName, der für die Variable $table$ verwendet wird:

Sie können natürlich Ihre eigenen Vorlagen erstellen oder die vorhandenen bearbeiten.

Unter Settings/Preferences | Database | General können Sie festlegen, ob Ihr Skript in der aktuellen oder in einer neuen Konsole generiert werden soll.

Dateneditor

Datenbearbeitung in MongoDB

Wir haben eine wichtige Funktion für die Arbeit mit MongoDB hinzugefügt: Ab dieser Version können Sie Daten in MongoDB-Collections bearbeiten. Eine Anweisungsvorschau ist ebenfalls verfügbar.

 

Um eine flexiblere Bearbeitung zu ermöglichen, können Sie jetzt den Feldtyp über die Bedienoberfläche ändern. Dies kann entweder über das Kontextmenü des Feldes oder im Werteeditor erfolgen:

Bessere Sortierung

Wir haben die Sortierung von Daten verbessert:

  • Das neue ORDER BY-Feld funktioniert ähnlich wie das WHERE-Feld (das früher Filter hieß): Geben Sie eine funktionierende Klausel ein, um sie auf die Abfrage anzuwenden, die der Tabellenanzeige zugrunde liegt.
  • Die Sortierung erfolgt standardmäßig anhand einer einzelnen Spalte. Wenn Sie auf einen Spaltenkopf klicken, um die Daten anhand dieser Spalte zu sortieren, wird die Sortierung nach anderen Spalten gelöscht. Um nach mehreren Spalten zu sortieren, halten Sie die Alt-Taste gedrückt, während Sie auf einen Spaltennamen klicken.

Wenn die Sortierung auf der Clientseite erfolgen soll (d.h. DataGrip führt die Abfrage nicht erneut aus, sondern sortiert die Daten stattdessen auf der aktuellen Seite), deaktivieren Sie Sort via ORDER BY:

Es ist auch möglich, Tabellen beim Öffnen anhand des numerischen Primärschlüssels zu sortieren. Diese Einstellung befindet sich in Settings/Preferences | Database | Data Views.

Neue Symbolleiste

Wir haben die Symbolleiste im Dateneditor überarbeitet. Die Schaltflächen Rollback und Commit werden im automatischen Transaktionsmodus nicht mehr angezeigt, und es gibt zwei neue Schaltflächen: Revert changes und Find.

Transponieren von einzeiligen Ergebnissen

Mit einer Option unter Settings/Preferences | Database | Data Views können Sie nun festlegen, dass einzeilige Ergebnisse immer transponiert werden sollen.

Navigation

Einfachere Aktionen

Wir haben die Navigation vereinfacht und die folgenden Einstellungen entfernt:

Auswahl verkleinern

Wenn Sie diese Einstellungen noch nie geändert und die Kontrollkästchen im standardmäßigen aktivierten Zustand belassen haben, ist die folgende Änderung in 2021.1 für Sie relevant: Wenn Sie Go to declaration (Strg/Cmd+B) für ein SQL-Objekt aufrufen, wird jetzt die DDL-Anweisung statt der Datenbankstruktur geöffnet.

Wir haben auch ein Tastenkürzel für die Aktion Select in database tree eingeführt: Alt+Umschalt+B für Windows/Linux und Opt+Umschalt+B für macOS.

Durch diese Änderung haben wir die Logik vereinfacht: Jede Aktion sollte Sie an die erwartete Stelle bringen.

Wenn sich der Cursor auf einem Objekt befindet, haben Sie jetzt folgende Möglichkeiten:

  • Strg/Cmd+B zeigt die DDL.
  • F4 zeigt die Daten.
  • Alt/Opt+Umschalt+B hebt das Objekt in der Datenbankstruktur hervor.

Wir wissen, dass dies einigen Angewohnheiten zuwiderlaufen könnte, und wir bieten Ihnen Möglichkeiten, Ihre bisherige Arbeitsweise beizubehalten. Einige Tipps:

  • Nutzen Sie die Möglichkeiten der Tastatur. Wenn Sie Strg/Cmd+B zum Öffnen des Datenbank-Explorers verwenden möchten, weisen Sie dem Tastenkürzel einfach die Aktion Select in database tree zu.
  • Wenn Sie mit Strg/Cmd+B bzw. Strg/Cmd+Klick CREATE definition öffnen möchten, wenn das im SQL-Code verwendete Objekt noch nicht existiert, behalten Sie einfach nach dem Remapping im vorherigen Tipp die Zuordnung dieser Tastenkürzel an Go to declaration bei.
  • Wenn Sie Prefer data editor over DDL editor deaktiviert haben und mit einem Doppelklick die DDL öffnen möchten, kann dieses Verhalten durch Ändern eines Registrierungsschlüssels wiederhergestellt werden: database.legacy.navigate.to.code.from.tree. Nach unseren Daten wurde dieser Workflow nur sehr selten verwendet. Wir empfehlen die Verwendung eines Tastenkürzels zum Öffnen der DDL für Objekte.

Sollte Ihr Anwendungsfall von diesem neuen Workflow nicht abgedeckt werden, teilen Sie uns dies bitte mit.

Konnektivität

Azure-MFA-Unterstützung

Bei Azure Active Directory wird jetzt die interaktive Authentifizierung unterstützt. Wenn diese Option aktiviert ist, wird automatisch der Browser geöffnet, damit Sie sich anmelden können.

Redshift-Treiber 2.x

Ab dieser Version steht DataGrip-Nutzer*innen der Redshift 2.x JDBC-Treiber zur Verfügung. Die wichtigste Verbesserung ist die Möglichkeit, Abfragen abzubrechen.

Volle Unterstützung für Google BigQuery

Der Dialekt Google BigQuery wird seit der vorherigen Version unterstützt. Wir haben die Unterstützung in dieser Version erweitert: Die Introspektion der Datenbank und die Codegenerierung funktionieren jetzt ordnungsgemäß und sind nicht mehr von der Funktionalität des JDBC-Treibers abhängig.

Unterstützung des CockroachDB-Dialekts

Wenn Sie mit CockroachDB-Skripten arbeiten oder SQL für diesen Datenbanktyp schreiben, wird Ihr Code korrekt eingefärbt und alle Fehler werden angezeigt, bevor Sie die Abfrage ausführen. Dies ist der erste Schritt zur vollständigen CockroachDB-Unterstützung, die in einer zukünftigen Version kommen wird.

Verbesserungen im Verbindungsfenster

Wir haben das Verbindungsfenster überarbeitet, um die Bedienung zu vereinfachen.

  • Treiber und Datenquellen werden jetzt auf zwei verschiedenen Tabs aufgelistet. Die separate Treiberliste hilft Neulingen, Datenquellen und Treiber auseinanderzuhalten, ohne erfahrene Nutzer*innen zu stören.
  • Jede Treiberseite enthält eine Schaltfläche Create data source.
  • Die Schaltfläche Test Connection wurde in die Fußzeile verschoben, sodass sie jederzeit zugänglich ist, egal welcher Tab der Datenquelleneigenschaften geöffnet ist, nicht wie zuvor nur vom Tab General und SSH/SSL aus.
  • Die Eigenschaftenseite der DDL-Datenquelle enthält eine Dropdown-Liste zur Auswahl des Dialekts.

Das URL-Feld ist jetzt erweiterbar, sodass lange URLs einfacher zu handhaben sind.

Datenbank-Explorer

Auswahl verkleinern

Einfaches Kopieren und Einfügen von Datenquellen

Es ist seit Langem möglich, Datenquellen zu kopieren und einzufügen. Ab 2021.1 können Sie zum Kopieren, Ausschneiden und Einfügen von Datenquellen jedoch einige der bekanntesten Tastenkürzel der Welt verwenden: Strg/Cmd+C/V/X.

  • Wenn Sie eine Datenquelle kopieren, wird der XML-Code in die Zwischenablage kopiert und kann zum Beispiel per Messenger weitergegeben werden. Sie können auch die Aktion Einfügen verwenden, um anderweitig erhaltenen XML-Code einzufügen.
  • Wenn Sie eine Datenquelle ausschneiden und wieder in dasselbe Projekt einfügen, wird sie nur verschoben, ohne das Passwort abzufragen. In allen anderen Fällen ist das Passwort anzugeben.
  • Das Ausschneiden kann mit Strg/Cmd+Z rückgängig gemacht werden.

Neues Layout

Das Standardlayout des Datenbank-Explorers wurde geändert. Weniger wichtige Objekte sind jetzt unter einem eigenen Knoten zusammengefasst. Die meisten Nutzer*innen arbeiten mit Tabellen, Views und Routinen, während Benutzer, Rollen, Tablespaces, Wrapper für Fremddaten und viele andere Objekttypen nur eine nachgeordnete Rolle spielen. Diese sekundären Objekte sind jetzt unter zwei Knoten verborgen: Server Objects und Database Objects.

 

Wenn Sie das alte Layout bevorzugen, öffnen Sie die Einstellungen mit einem Klick auf das Zahnradsymbol und wählen Sie Group Database and Schemas.

Automatisch generierte Objekte ausblenden Oracle

Wenn Sie Oracle verwenden, können Sie mit einer Option automatisch generierte Objekte in der Baumstruktur ein- oder ausblenden, einschließlich der folgenden Objekttypen:

  • Materialized-View-Logs
  • Zugrunde liegende Tabellen für Materialized Views
  • Sekundäre Tabellen

Neue Objekttypen SQLite

Bei SQLite ist jetzt die Introspektion von Funktionen, Modulen und virtuellen Spalten möglich.

Verbesserungen für nicht unterstützte Datenbanken

Datenquellen-Vorlagen

Ab 2021.1 lassen sich Datenquellen für nicht unterstützte Datenbanken leichter hinzufügen. Wir bieten jetzt JDBC-Treiber für AWS Athena, Informix, Presto, SAP HANA, Google Cloud Spanner und viele andere Datenbanksysteme. Sie finden diese Datenbanken in der Datenbankliste unter Other.

Wir haben auch einige zusätzliche Verbesserungen vorgenommen:

  • Sie müssen den Treiber nicht mehr selbst herunterladen und manuell eine darauf basierende Datenquelle erstellen.
  • Neue Versionen des Treibers werden von DataGrip bereitgestellt.
  • Einige neue Datenbanken haben eigene Symbole bekommen.

Bitte beachten Sie, dass die Unterstützung für diese Datenbanken beschränkt ist. Dies hängt hauptsächlich von den Fähigkeiten des JDBC-Treibers und der Unterstützung des SQL:2016-Dialekts im SQL-Editor von DataGrip ab.

Analyse von Abfragen

Wir haben eine neue Einstellung für die Verwendung nicht unterstützter Datenbanken eingeführt. Wenn Sie in DataGrip mit diesen Datenbanken arbeiten, müssen Sie entweder SQL:2016 oder Generic als Dialekt auswählen. Generic ist fast identisch mit SQL:2016, mit einem einzigen Unterschied: DataGrip hebt die gefundenen Fehler nicht hervor.

Diese Einstellung finden Sie unter Settings/Preferences | Database | General | Split a script for execution in Generic and ANSI SQL dialects. Folgende Werte stehen zur Auswahl:

  • On valid ANSI SQL statements oder by separator – Diese Standardeinstellung eignet sich für die meisten Fälle. Dies bedeutet, dass wir unser Bestes geben, um zu erkennen, was Sie ausführen möchten.
  • On ANSI SQL Statements – Anweisungen werden wie bisher geteilt. Die Logik basiert nur auf dem, was DataGrip als gültige SQL:2016-Grammatik versteht.
  • By statement separator – Anweisungen werden anhand von Trennzeichen extrahiert und ausgeführt. Verwenden Sie diese Option, wenn die erste Option nicht zum gewünschten Ergebnis geführt hat. Bei GenericSQL ist das Trennzeichen ein Semikolon. Bitte beachten: Es nicht mehr möglich, ein benutzerdefiniertes Trennzeichen festzulegen.

Hier sind einige der Probleme, die wir gelöst haben:

  • Viele von Ihnen haben Probleme bei der Ausführung von CTEs gemeldet. Dies sollte sich durch das Upgrade der generischen Grammatik von SQL:92 auf SQL:2016 gebessert haben, aber die Option On valid ANSI SQL statements oder by separator ist bei komplexen CTEs immer noch hilfreich. Ein weiteres Beispiel für eine Anweisung, die mit dieser Option funktioniert, ist die selten verwendete MERGE-Anweisung.
  • Die Option On valid ANSI SQL statements oder by separator hilft außerdem, Befehle auszuführen, die gemäß SQL:2016-Grammatik gar keine Anweisungen sind – z. B. show databases.

Programmierunterstützung

Mehrdeutiger Spaltenname bei Verwendung von CTEs

Die Inspektion zum Erkennen mehrdeutiger Spaltennamen ist jetzt intelligenter und berücksichtigt Spalten in Common Table Expressions (CTEs):

Systemfunktionen können ohne Qualifizierung verwendet werden SQL Server

Systemfunktionen und -prozeduren werden nicht mehr als Fehler hervorgehoben, wenn sie ohne Qualifizierung verwendet werden. Darüber hinaus funktionieren jetzt die Navigations- und Completion-Funktionen für sie.

JSON-Lines-Unterstützung

Thanks to the IntelliJ Platform, DataGrip now has support for the newline-delimited JSON Lines format used for working with structured data and logs. Die IDE erkennt die Dateitypen .jsonl, .jslines, .ldjson und .ndjson.

Einstellbare Schriftstärke

Mit den neuen Typografieeinstellungen können Sie die verwendete Schriftart genau auf Ihre Präferenzen abstimmen. In v2021.1 können Sie unter Settings/Preferences | Editor | Fonts die Stärke der verwendeten Normal- und Fettschrift optimieren.

Importieren/Exportieren

Warnung bei nicht geladenen Daten

Wenn Sie Binärdaten kopieren, die noch nicht vollständig geladen wurden, wird die folgende Meldung angezeigt:

Wenn Sie nicht möchten, dass Daten abgeschnitten werden, erhöhen Sie den Wert in Settings/Preferences | Database | Data Views | Maximum number of bytes loaded per value.

Abfrage in Excel-Datei

Bei einem Export nach Excel enthält die generierte Datei die Abfrage auf einem separaten Arbeitsblatt.

First row is header im Kontextmenü

Beim Importieren einer CSV-Datei können Sie jetzt per Kontextmenü die erste Zeile als Kopfzeile festlegen – siehe Abbildung:

Bedienoberfläche

Auswahl verkleinern

Ordner per Drag&Drop anhängen

Ordner können jetzt durch Ziehen und Ablegen an ein Projekt angehängt werden.

Auswahl verkleinern

Maximieren von Tabs in der geteilten Ansicht

Wenn in einem vertikal geteilten Editorfenster mehrere Tabs geöffnet sind, können Sie auf einen Tab doppelklicken, um diesen im Editorfenster zu maximieren. Mit einem erneuten Doppelklick können Sie das Fenster wieder auf seine ursprüngliche Größe verkleinern.

Lange Namen in Tab-Beschriftungen

Vor einiger Zeit haben wir verkürzte Tab-Beschriftungen eingeführt. Nicht allen hat dies gefallen, daher bieten wir Ihnen jetzt mit einer neuen Einstellung die Wahl.