Das ist neu in DataGrip 2022.1

DataGrip 2022.1 ist da – das erste große Update des Jahres 2022. Die neue Version ist vollgepackt mit verschiedenen Verbesserungen für eine optimierte Benutzererfahrung. Im Folgenden stellen wir Ihnen die Neuerungen im Detail vor.

Import/Export

Mehrere Objekte kopieren

Dies ist zweifellos das Highlight dieser Version. Sie können jetzt mehrere Tabellen auswählen und in ein anderes Schema kopieren.

Wählen Sie die Tabellen aus, die Sie kopieren möchten, und drücken Sie F5, um den Exportdialog zu öffnen.

Wie beim Exportieren einer einzelnen Tabelle können Sie die Spalten zuordnen sowie die DDL der neuen Tabelle ansehen und ändern.

 

Wie Sie vielleicht wissen, unterstützt DataGrip den Export zwischen unterschiedlichen Datenbanksystemen. Das Zielschema kann sich also in jeder beliebigen Datenbank Ihres Projekts befinden. Dadurch lassen sich zum Beispiel problemlos alle Tabellen aus einer PostgreSQL-Datenbank in eine SQL-Server-Instanz kopieren.

Sie können auch eine bestehende Tabelle als Ziel angeben, anstatt eine neue Tabelle zu erstellen. In diesem Fall werden die Daten aus der Quelltabelle an die Zieltabelle angefügt.

Qualitätsverbesserungen

  • DBE-5200: Die Aktion Edit as table funktioniert jetzt auch dann korrekt, wenn die Zeilen in der Quelldatei unterschiedliche Spaltenanzahlen haben.
  • DBE-14541: Das Hinzufügen einer Zeile zu einer einspaltigen CSV-Datei funktioniert jetzt korrekt.
  • DBE-14735: Der Fehler beim gleichzeitigen Export von Tabellen mit Zeitstempeln wurde behoben.

Dateneditor

Standardanzeigeformat für binäre Zellen

Wir haben eine neue Einstellung Automatically detect binary values (Binäre Werte automatisch erkennen) mit zwei Optionen hinzugefügt: UUID und Text. Die UUID-Erkennung kann jetzt deaktiviert werden.

Felder in Abfrageergebnissen bearbeiten MongoDB

Sie können jetzt Abfrageergebnisse von MongoDB-Collections direkt in einer Konsole bearbeiten. Dies funktioniert sogar dann, wenn nach .find() weitere Methoden wie sort() oder limit() ausgeführt werden.

Unterstützung für In-Editor-Ergebnisse im Batch-Modus SQL Server

Wenn in Transact SQL mehrere Anweisungen nebenläufig ausgeführt werden, wird der Batch-Modus verwendet. Dadurch war es bisher schwierig, die Ergebnisse der einzelnen Abfragen im Editor anzuzeigen. Jetzt kann DataGrip jedoch auch mit dieser Situation umgehen.

Außerdem entfernt DataGrip jetzt alle SQLCMD-Anweisungen, wenn Abfragen im Batch-Modus ausgeführt werden (siehe DBE-14920 für weitere Informationen).

Qualitätsverbesserungen

  • DBE-8561: Ein Klick außerhalb der Datumsauswahl führt jetzt nicht mehr dazu, dass Änderungen verloren gehen.
  • DBE-9632: Der Wert der Datumsauswahl kann jetzt mit der Enter-Taste gespeichert werden.
  • DBE-11706: Die Tab-Taste wird jetzt in der Datumsauswahl unterstützt.
  • DBE-9974: Sie können jetzt eine .csv-Datei von der Aktion View as Table ausschließen.
  • DBE-13040: Ausgeblendete Spalten können jetzt einfacher angezeigt werden – klicken Sie einfach auf eine ausgeblendete Spalte in der Spaltenliste.
  • DBE-14516: Die Zellengrößenangabe wird bei vollständig geladenen Werten nicht mehr angezeigt. Außerdem wird eine Festbreiten-Schriftart verwendet, um eine gleichmäßige Ausrichtung der Informationen zu gewährleisten.
  • DBE-14670: Der Geo-Viewer wird jetzt korrekt synchronisiert.
  • DBE-10851: Wir haben ein Schriftartenproblem in der Baumansicht behoben.
  • DBE-9710: Oracle Bei Zeitstempelwerten wird jetzt die Zeitzone berücksichtigt.
  • DBE-14852: MariaDB, Aurora MySQL Leere Datumswerte werden jetzt im Dateneditor korrekt angezeigt.
  • DBE-15009: Sybase ASE In der Ergebnisansicht werden jetzt alle Spalten angezeigt.
  • DBE-15031: Snowflake Die Aktualisierungsabfrage für Tabellen mit DEFAULT-Werten wird jetzt korrekt generiert.
  • Das Kontextmenü von Spalten wird jetzt auch in der Transpose-Ansicht angezeigt.

Introspektion

Session-Vorlagen für Introspektion

Manchmal erfordert die Introspektion besondere Berechtigungen, die nur speziellen Benutzeraccounts gewährt werden. Sie können jetzt spezielle Anmeldeinformationen für die Introspektion verwenden. Legen Sie dazu zunächst eine eigene Session-Vorlage auf dem Tab Optionen an.

 

Verwenden Sie dann diese Vorlage für die Introspektion, indem Sie sie im Feld Use session template des Abschnitts Introspection auswählen.

Fragmentarische Introspektion Oracle

Jetzt haben Sie die Möglichkeit, ein Objekt unabhängig von allen anderen Datenbankobjekten zu aktualisieren.

 

Dies kann besonders nützlich sein, wenn Sie unsere neue Funktionalität Introspection levels verwenden, mit der Sie eine Introspektionsstufe auswählen können. Wenn Sie nur den Quellcode eines einzigen Objekts einsehen möchten, ist dies jetzt problemlos möglich: Klicken Sie im Datenbank-Explorer auf die Schaltfläche Refresh Object.

Wenn Sie den Quelltext-Editor des Objekts öffnen, bietet DataGrip Ihnen außerdem die Möglichkeit, das ausgewählte Objekt durch Introspektion zu untersuchen.

Unterstützung für Version 2.x H2

H2 wird jetzt in der Version 2.x unterstützt. Hier ist die Liste der Änderungen:

  • DataGrip führt jetzt die Typ-Introspektion korrekt durch. Die meisten Probleme betrafen die Composite-Typen ARRAY und ROW.
  • Bei Spalten mit eingebauten Sequenzen (auto_increment, generated always as identity usw.) wird die Introspektion jetzt korrekt durchgeführt.
  • Check-Constraints und Fremdschlüssel gehen nicht mehr verloren.
  • Für Views, Trigger und Routinen wird der Quellcode geladen.
  • Für Domänen werden Informationen zu Check-Predicates angezeigt.

Grundlegende Unterstützung erweitert YugabyteDB

Wir stellen jetzt einen JDBC-Treiber für YugabyteDB bereit, sodass Sie mit einem einzigen Klick eine YugabyteDB-Datenquelle anlegen können.

Qualitätsverbesserungen

  • DBE-13521: ClickHouse Der Quellcode von Materialized Views kann jetzt per Introspektion geprüft werden.

Codegenerierung

Neue Version von Modify Table

Das Fenster Modify Table wird leicht überarbeitet. Die neue Version wird über eine Bedienoberfläche verfügen, die vollständig auf Introspektion basiert und dadurch verschiedene datenbankspezifische Parameter berücksichtigt.

Vorerst wird nur ein kleiner Teil des Updates eingeführt, aber auch jetzt schon kann der Nutzwert enorm sein. Das neue Modify Table-Fenster ermöglicht das Hinzufügen und Bearbeiten von Check-Constraints für Spalten – dies war bisher nicht möglich! Außerdem haben Sie jetzt die Möglichkeit, alle Eigenschaften von Tabellen und Spalten zu bearbeiten, auf die DataGrip durch Introspektion zugreifen kann.

Wir sind zuversichtlich, dass Ihnen die neue Bedienoberfläche für Spalten, die ohne das von viele als frustrierend empfundene Einklappen und Ausklappen auskommt, besonders gefallen wird.

Qualitätsverbesserungen

  • DBE-15000, DBE-15001: PostgreSQL Bei der Bearbeitung von Grants wird jetzt korrekter Code generiert.
  • DBE-5136: SQL Server Sie erhalten jetzt ein gültiges Skript, wenn Sie Spalten mit Constraints über Modify Table entfernen.
  • DBE-14760: MySQL Das Fenster Modify Table führt nicht mehr zu Datenkorruption im funktionalen Index.
  • DBE-2827: MySQL Das AUTO_INCREMENT-Attribut kann geändert werden.
  • DBE-14801: Snowflake Das generierte DDL-Skript enthält Statements zum Erstellen der Default-Sequenzen.

Diff-Betrachter für Datenbanken

Quelle und Ziel vertauschen

Mit einer neuen Schaltfläche können Sie beim Vergleichen von Objekten oder Schemas Quell- und Zielobjekt vertauschen.

Qualitätsverbesserungen

Wir verbessern kontinuierlich die Qualität unseres kürzlich eingeführten Datenbank-Diff-Fensters. Einige Fehlerkorrekturen wurden bereits in Version 2021.3 eingeführt, aber auch in 2022.1 sind einige neue Fixes enthalten. Zum Beispiel:

  • DBE-15063: Der neue intelligente Algorithmus für den Zeichenfolgenvergleich löst das Problem, dass im Diff-Fenster die Groß- und Kleinschreibung von Schlüsselwörtern berücksichtigt wurde.
  • DBE-14686: Die Option Reformat generated code wird berücksichtigt.
  • DBE-14782: Der Diff-Betrachter erkennt Objekte, die trotz unterschiedlicher Namen wahrscheinlich gleich sind.
  • DBE-14431: Oracle Die Ausnahme Array index out of bounds sollte nicht mehr auftreten.

Code-Editor

Konvertieren in Unterabfrage als Intention-Aktion

Wir haben eine praktische neue Intention-Aktion eingeführt: Convert To Subquery. Sie müssen zur Konvertierung nicht mehr Surround Live Template verwenden. Sie müssen nicht einmal eine Abfrage auswählen. Drücken Sie einfach Alt+Enter | Convert To Subquery.

Verbesserte automatische Einrückung

Wir haben die Algorithmen für die automatische Einrückung verbessert. Es gab mit DBE-14825 und DBE-8742 zwei Tickets zu diesem Thema, aber wir sind viel weiter gegangen und haben alle möglichen Situationen und Fälle berücksichtigt, sodass die automatische Einrückung jetzt fast überall korrekt funktionieren sollte.

Unterstützung von Multirange-Typen PostgreSQL

Multirange-Typen wurden in PostgreSQL 14 eingeführt, und wir haben nun Unterstützung für die eingebauten Typen hinzugefügt.

In Zukunft werden wir auch benutzerdefinierte Multirange-Typen unterstützen.

Qualitätsverbesserungen

  • DBE-11683: PostgreSQL Die Syntax ROWS FROM wird jetzt unterstützt.
  • DBE-11868: PostgreSQL Es wurde ein Problem behoben, das die Auflösung von Common Table Expressions verhinderte.
  • DBE-15061: PostgreSQL Die inkorrekte Injektion der JSONB-Syntax wurde behoben.
  • DBE-14888: PostgreSQL BEGIN ATOMIC wird jetzt unterstützt.
  • DBE-15052: Redshift ALTER MATERIALIZED VIEW wird jetzt unterstützt.
  • DBE-11830: Oracle Die Syntax USING INDEX ENABLE wird jetzt unterstützt.
  • DBE-6548: Oracle Die Spaltenauflösung in CREATE MATERIALIZED VIEW LOG-Statements wurde korrigiert.
  • DBE-15095: Snowflake Die Option WITH TAG wird jetzt im Statement CREATE STAGE unterstützt.
  • DBE-14793: Snowflake Das Statement EXECUTE wird jetzt unterstützt.
  • DBE-11247: Snowflake JSON wird jetzt in Statements korrekt hervorgehoben.
  • DBE-14843: BigQuery QUALIFY wird jetzt unterstützt.
  • DBE-13995: BigQuery UNNEST für Spalten wird jetzt unterstützt.
  • DBE-14504: ClickHouse Map-Literale werden jetzt unterstützt.
  • DBE-15013: ClickHouse UNION DISTINCT wird jetzt unterstützt.

Abfragen ausführen

Abbrechen laufender Statements

Beim mehrmaligem Anklicken der Schaltfläche Cancel statement sah es bisher so aus, als wäre die Abfrage abgebrochen worden, aber tatsächlich wurde die Anfrage weiterhin in der Datenbank ausgeführt.

Dieses Verhalten war in einer komplexen Logik begründet. Beim ersten Klick sendete DataGrip eine Abbruchanfrage an die Datenbank, während beim zweiten Klick der JDBC-Treiberprozess beendet wurde, um alle Verbindungen zur Datenquelle zu kappen (wir bezeichnen dies als Deaktivierung der Datenquelle). Dadurch erhielt DataGrip einen Fehler als Antwort auf die zweite Abbruchanfrage – der Grund war jedoch, dass die Verbindung abgebrochen war, und nicht, dass der Abbruch tatsächlich durchgeführt wurde.

Wir haben jetzt die Abbruchlogik vereinfacht. Hoffentlich ist es jetzt klarer, dass die Anfrage abgebrochen wird:

  • Die Fortschrittsanzeige in der Randleiste zeigt ein rotes Quadrat, während die Anfrage abgebrochen wird.
  • Es wird ein Fortschrittsbalken für den Abbruch angezeigt. Dieser identifiziert die Datenquelle und die Sitzung.

Wir deaktivieren Datenquellen nicht mehr ohne Warnung, da dies für einige parallel ablaufende Prozesse gefährlich sein kann. Wenn Sie also ein zweites Mal auf Cancel klicken, fragt DataGrip, ob der Remote-Prozess wirklich beendet werden soll, oder ob Sie weiter warten möchten. Wenn Sie sich entscheiden, die Datenquelle zu deaktivieren, wird die Abfrage in DataGrip gestoppt, aber in der Datenbank weiterhin ausgeführt.

Nach 10 Sekunden Leerlauf wird Ihnen die Option angeboten, die Datenquelle trotzdem zu deaktivieren.

Nachdem die Abfrage abgebrochen wurde, erscheint links davon ein Randleistensymbol, das dem Symbol „Nein“ ähnelt.

Abbrechen von Verbindungen

Wenn Sie bisher während dem Aufbau einer Verbindung versucht haben, eine Anfrage abzubrechen, wurde die Datenquelle deaktiviert.

Jetzt haben Sie die Möglichkeit, nicht nur die Ausführung der Anfrage, sondern auch die Herstellung der Verbindung abzubrechen. Dies ist besonders relevant für die erste Abfrage in der Konsole, bei der ebenfalls eine Verbindung aufgebaut wird.

Jetzt können Sie den Prozess des Verbindungsaufbaus stoppen, ohne die Datenquelle zu deaktivieren: Wenn Sie auf Cancel klicken, während die Verbindung hergestellt wird, wird der Verbindungsaufbau gestoppt, und die Meldung Connection canceled wird angezeigt.

Dies ist nicht nur für Abfragen in der Abfragekonsole relevant. Wenn Sie zum Beispiel eine Verbindung herstellen, bevor Sie eine Introspektion starten, wird beim Abbruch der Introspektion der Verbindungsaufbau abgebrochen, ohne die Datenquelle zu deaktivieren.

Allgemeine IDE-Aspekte

Einstellungen überarbeitet

Die Struktur des Datenbankbereichs in den Einstellungen war seit der ersten DataGrip-Version gleich geblieben. Die Zeit war also reif, die Bedienfreundlichkeit dieses Bereiches durch eine Überarbeitung der Struktur zu verbessern. Wir haben daher folgende Änderungen vorgenommen:

Die Einstellung Track databases/schemas creation und deletion wurde aus dem Abschnitt General nach Data Source Properties | Options verschoben und bezieht sich jetzt auf eine bestimmte Datenquelle. Diese Einstellung legt fest, ob die Schemaliste aktualisiert werden muss, nachdem Sie in der Abfragekonsole Schemas angelegt oder gelöscht haben.

Andere Einstellungen sind immer noch global, wurden jedoch in geeignetere Abschnitte verschoben.

Bitte beachten Sie, dass im Rahmen dieses Updates die folgenden Einstellungen auf die Standardwerte zurückgesetzt werden:

  • Data Source properties | Track databases/schemas creation and deletion – True.
  • Editor | General | Editor Tabs | Database | Always show qualified names for database objects in tab titles – False.
  • Editor | General | Editor Tabs | Database | Shorten datasource and object names in tab titles – True.

Gleichmäßige Tab-Breite

Jetzt haben Sie die Möglichkeit, den Arbeitsbereich so auf die Editor-Tabs aufzuteilen, dass diese die gleiche Breite haben. Die dazugehörige Einstellung lautet Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits.

UML-Diagramm in andere Formate exportieren

Diagramme können jetzt in den Formaten yEd (.graphml), JGraph (.drawio), Graphviz bzw. Graphviz mit Positionen (.dot), Mermaid (.md), Plantuml und IDEA (.uml) exportiert werden, um die Kompatibilität mit Drittanbieter-Tools zu gewährleisten.

Qualitätsverbesserungen

  • DBE-15043: Lesezeichen zeigen jetzt das gleiche Navigationsverhalten wie Datenbank-Explorer-Elemente.
  • DEA-129631: Nicht ganzzahlige Schriftgrößen werden jetzt unterstützt.