Das ist neu in DataGrip 2021.2

DataGrip 2021.2 ist da! Dies ist das zweite große Update von 2021, und es ist mit zahlreichen Verbesserungen ausgestattet. Sehen wir uns an, was es zu bieten hat!

DDL-Datenquelle

Die DDL-Datenquellengenerierung ist ein weiterer Schritt in unserer langfristigen Entwicklung der nahtlosen Datenbankversionsverwaltung. Mit dieser Funktion können Sie Ihre DDL-Dateien unter einem VCS-System aufbewahren und sie bei jeder Aktualisierung Ihrer Datenbankstruktur neu generieren.

Sie können jetzt eine DDL-Datenquelle basierend auf einer echten Datenquelle generieren. Die DDL-Dateien werden lokal erstellt und die neue Datenquelle basiert auf diesen Dateien. Auf diese Weise haben Sie jederzeit die Möglichkeit, diese Dateien neu zu generieren und die DDL-Datenquelle zu aktualisieren.

Sehen wir uns an, wie dies im Detail funktioniert.

Wir haben einen neuen Menüpunkt, Dump to DDL data source, zum Kontextmenü SQL Scripts hinzugefügt.

Wenn der Dialog geöffnet wird, müssen Sie den Ordner angeben, in dem die neu erstellten Dateien gespeichert werden sollen.

Auf der Registerkarte Generation geben Sie an, wie diese DDL-Dateien generiert werden sollen.

Klicken Sie abschließend auf OK, um die DDL-Datenquelle zu erstellen.

Der Ordner mit den neuen Dateien wird automatisch an Ihr Projekt angehängt.

Objekte erstellen

In v2021.2 können Sie Objekte in einer DDL-Datenquelle über die UI erstellen. Die entsprechenden Dateien werden lokal erstellt.

Diagramme

Darüber hinaus wurden die folgenden Funktionen zu Diagrammen hinzugefügt:

  • Tabellenkommentare sind jetzt sichtbar
  • Tabellenfarben werden im Diagramm angezeigt
  • Sie können die Zusammenführung von Rändern ausschalten

Qualitätsverbesserungen:

DBE-13057: Wir haben den Algorithmus zum Zeichnen von Diagrammen verbessert, so dass sich die Namen der Objekte nicht mehr mit Beziehungslinien überschneiden.

DBE-13264: Die Notizen werden beim Speichern nicht mehr verloren.

Code-Editor

Suche im lokalen Verlauf

Wenn Sie eine bestimmte Revision in lokalen Verlauf suchen, können Sie die Textsuche verwenden!

Lokaler Verlauf für Quellen

DataGrip verfolgt jetzt lokale Änderungen für Objekt-Quellcodes. Dies kann besonders bei der Arbeit mit Prozeduren und Funktionen nützlich sein.

Da die Quellen für jedes Objekt in einer Datei gespeichert werden, werden alle externen Änderungen auch als lokale Änderungen betrachtet. Wenn Sie eine Introspektion Ihrer Datenbank durchführen, wird diese Datei neu geladen.

Sie können das Popup "Local History" verwenden, um alle Änderungen an einer Funktion oder Prozedur zu verfolgen. Beachten Sie, dass alle externen Änderungen als eine Änderung betrachtet werden, wenn sie innerhalb von zwei Durchläufen der Introspektion erfolgt sind.

Lange Registerkartennamen sind wieder da

Nachdem wir einige Rückmeldungen von Benutzer*innen erhalten haben, denen die verkürzten Registerkartennamen nicht gefielen, haben wir die Option eingeführt, diese wieder zurück zu ändern. Wenn Sie lange Registerkartennamen bevorzugen, deaktivieren Sie die Option Shorten Tab Titles.

Auswahl verkleinern

Aktion Maximize Editor / Normalize Splits

Wir hatten lange die Aktion Hide All Tool Windows, die durch Doppelklick auf eine Registerkarte oder durch Shift+Ctrl+F12 aufgerufen werden konnte. Viele Benutzer*innen behandelten diese Aktion als Maximize Editor und sie funktionierte auch als solche!

Nachdem wir die geteilte Editoransicht eingeführt haben, wurde die Situation komplizierter. Sollte diese Aktion die geteilten Registerkarten ausblenden oder nicht? Also haben wir Folgendes getan:

  • Die Aktion Hide All Tool Windows blendet die geteilten Registerkarten nicht mehr aus.
  • Die neue Aktion Maximize Editor / Normalize Splits maximiert die aktuelle Registerkarte, blendet aber die Toolfenster nicht aus.

Codevervollständigung

Umfang der Vervollständigung

Es ist jetzt möglich, festzulegen, welche Objekte in der Codevervollständigungsliste angezeigt werden sollen: nur Objekte aus dem Schemawechsler (oder dem Suchpfad), aus dem aktuellen Bereich oder aus allen Schemata.

  • Suggest only search path objects: Es werden nur Objekte aus den im Schemawechsler gewählten Schemata vorgeschlagen.
  • Suggest objects from current scope (Standardeinstellung): Die Liste wird mit den Objekten gefüllt, die DataGrip ohne Einschränkung korrekt auflösen kann – die Menge der Objekte aus dem Schemawechsler, USE-Anweisungen und dem Standardschema.
  • Suggest objects from all available schemas: Die Liste wird alle Objekte aus allen verfügbaren Schemata enthalten.

Dies kann auch über die intelligente Vervollständigung verwaltet werden. Die intelligente Vervollständigung wird aufgerufen, wenn Sie den Vervollständigungs-Hotkey (normalerweise Strg+Leertaste) mehrmals drücken.

  • Einmal drücken oder automatisch aufgerufen: wie oben beschrieben.
  • Zweimal drücken: alle Schemata außer denen, die für die Introspektion ausgeschaltet sind.
  • Dreimal drücken: Objekte aus allen verfügbaren Schemata und Datenbanken.

Vervollständigung von Feldern und Operatoren MongoDB

Felder und Operatoren sind jetzt in der Codevervollständigung für MongoDB verfügbar. Lesen Sie diesen Beitrag für weitere Details.

Vervollständigung für datenbankübergreifende Synonyme SQL Server

Die Codevervollständigung für datenbankübergreifende Synonyme ist jetzt verfügbar.

INSERT-Vervollständigung und berechnete Spalten

Berechnete Spalten werden bei der Vervollständigung von INSERT-Anweisungen berücksichtigt – sie sind nicht im vorgeschlagenen Element enthalten.

Qualitätsverbesserungen

DBE-10515, DBE-2212: Objekte aus dem Schema des aktuellen Kontexts haben eine höhere Priorität in der Codevervollständigungsliste.

DBE-7781, DBE-10650: Der automatische Alias erscheint nur, wenn er benötigt wird.

DBE-12018: Die Tabellenqualifizierung in der JOIN-Vervollständigung funktioniert wie erwartet.

DBE-12479: Die Priorität von ASC/DESC innerhalb einer ORDER BY-Klausel wurde erhöht.

DBE-13341: PostgreSQL Vervollständigung in GRANT/REVOKE-Anweisungen funktioniert wie erwartet.

Code-Hervorhebung

Unterstützung für rekursive CTE Redshift

Abfragen, die rekursive Common Table Expressions (CTEs) verwenden, werden jetzt korrekt hervorgehoben und können ausgeführt werden, ohne dass sie ausgewählt sind.

Bessere CTE-Unterstützung ClickHouse

Die Syntax für Common Table Expressions, bei der der CTE-Name vor dem AS-Schlüsselwort steht, wird jetzt unterstützt.

Qualitätsverbesserungen

DBE-3759, DBE-13364, DBE-13365: Inspektionen für Aggregate werden genauer ausgeführt.

DBE-10782: ClickHouse Keine falsch-positiven Warnungen mehr von der Inspektion, die nicht-null Argumente in COALESCE meldet.

DBE-13188: Oracle PL/SQL-Datensatztyp-Felder werden korrekt aufgelöst.

DBE-10550: DB2 Tabellen-Aliase werden korrekt aufgelöst.

Datenbank-Explorer

Getrennte Ordner für Funktionen und Prozeduren

Wenn Sie in den Einstellungen des Datenbank-Explorers (das Zahnradsymbol) die Option Separate Procedures and Function einschalten, tritt diese sofort in Kraft.

Für SQL-Server gibt es eigene Knoten für Skalar- und Tabellenfunktionen. Für PostgreSQL gibt es einen Knoten für Trigger-Funktionen.

Separate Knoten für Trigger, Schlüssel und Indizes

Eine neue Datenbankstruktur-Option, Show Constraints and Triggers in the Schema, weist Triggern, Schlüsseln und Indizes eigene Knoten im Datenbank-Explorer zu.

 

Warum ist das nützlich?

  • Sie können ein Objekt innerhalb eines Schemas mit Hilfe der Schnellsuche finden.
  • Sie können die Spalten direkt unter dem Tabellenknoten sehen. Stellen Sie dazu sicher, dass die Option Show Empty Groups ausgeschaltet ist.

Natürliche Sortierreihenfolge für Datenbankobjekte

Wenn Sie die Option Sort Alphabetically in den Einstellungen des Datenbank-Explorers ausschalten, wird eine natürliche Sortierung für Objekte angewendet.

So sieht es aus, wenn Sort Alphabetically ausgeschaltet ist:

So sieht es aus, wenn Sort Alphabetically ausgeschaltet ist:

...und wenn Sort Alphabetically eingeschaltet ist:

Selbstprüfung

Native Introspektion CockroachDB

CockroachDB wird in dieser Version vollständig unterstützt. DataGrip wird sich nicht mehr auf die JDBC-basierte Introspektion verlassen, sondern stattdessen die native Introspektion verwenden.

 

Dies ist viel schneller als die JDBC-basierte Introspektion. Außerdem konnten role, deftype, und check constraint in der vorherigen Version überhaupt nicht introspektiert werden. Die vollständige Liste der Objekte, die jetzt introspektiert werden, beinhaltet database, role, privilege, schema, sequence, deftype, table, view, mat view, index, column, und constraints. Dass partitions noch nicht introspektiert werden, ist ein bekanntes Problem.

Virtuelle Fremdschlüssel für pg_catalog PostgreSQL

Vor einiger Zeit haben wir einen Mechanismus zur Erstellung von virtuellen Fremdschlüsseln angekündigt. Nun haben wir diesen Mechanismus genutzt, um pg_catalog mit virtuellen Fremdschlüsseln abzudecken. Dies bringt einige Verbesserungen mit sich.

Erstens hilft Ihnen die JOIN-Vervollständigung bei der Abfrage von Systemtabellen:

Zweitens können Sie nach Daten in Systemtabellen navigieren:

Tablespaces Oracle

Wir haben Unterstützung für Tablespaces, Datendateien und temporäre Dateien hinzugefügt. Sie werden jetzt introspektiert:

 

Sie werden auch bei der DDL-Generierung berücksichtigt:

Verknüpfte Server SQL Server

Dies ist noch keine vollständige Unterstützung, da für Objekte in verknüpften Servern keine Metadaten verfügbar sind. Verknüpfte Server werden im Datenbank-Explorer angezeigt, und die DDL für ihre Erstellung kann generiert werden.

Dateneditor

Auswahl verkleinern

Kontextbezogene Live-Vorlagen aus dem Dateneditor

Die in der vorherigen Version eingeführten kontextbezogene Live-Vorlagen funktionieren jetzt aus dem Dateneditor. Wenn Sie mit einer Tabelle arbeiten und diese abfragen möchten, können Sie dies einfach mit Hilfe der Aktion SQL Scripts tun.

Option für additive Sortierung

Wir haben kürzlich Alt+Klicken für die additive Sortierung eingeführt. Wenn Sie aber lieber einfach klicken, können Sie dieses Verhalten anpassen:

Auswahl verkleinern

Spalten hinzufügen/löschen in MongoDB

Sie können jetzt Spalten zu MongoDB-Collections hinzufügen. Mit dieser Aktion können Sie ein neues Feld zu einem beliebigen Dokument einer Collection hinzufügen.

 

Delete column löscht Daten nicht nur auf der angezeigten Seite, sondern auch in der gesamten Sammlung.

Auswahl verkleinern

Spalten hinzufügen/umbenennen in CSV-Dateien

Mit Hilfe des UI-Dateneditors können Sie jetzt Spalten in CSV-Dateien hinzufügen und entfernen.

Abfrage in die Konsole kopieren

Wenn Sie im Dateneditor arbeiten, verwenden Sie manchmal komplizierte Klauseln in den Feldern WHERE und ORDER BY. Wenn Sie mit der resultierenden Abfrage weiterarbeiten möchten, verwenden Sie eine neue Aktion, Copy Query to Console, unter dem Zahnradsymbol. Sie öffnet die Abfrage in der Standardkonsole.

Auswahl verkleinern

Keine Option First row mehr in der Navigation anhand von Fremdschlüsseln

Um die Navigation schneller zu machen, haben wir die Option First row entfernt. Es wird kein Popup mehr angezeigt, und Sie werden zu der Tabelle navigiert, die alle referenzierenden oder referenzierten Zeilen anzeigt.

Qualifizierung bei der Navigation anhand von Fremdschlüssel

Wenn Sie Fremdschlüssel haben, die auf Objekte in einem anderen Schema verweisen, und diese Objekte den gleichen Namen haben, werden sie in der Navigations-UI für Fremdschlüssel als qualifiziert angezeigt.

Qualitätsverbesserungen

DBE-12545: Die Größe des Feldes ORDER BY wird gespeichert.

DBE-13055: Die Zeitzone wird immer für Werte mit einer Zeitzone angezeigt.

DBE-9814: Oracle Werte vom Typ DATE zeigen die Zeit nicht an, wenn keine Zeit eingestellt ist.

DBE-12679: Oracle Nach dem Feld DATE zu filtern ist möglich.

DBE-12716: DB2 Nach den Feldern binary, blob, char for bit data, und varchar for bit data zu filtern ist möglich.

Import/Export

Link zur Tabelle nach dem Import

Nach Abschluss eines Imports wird in den Benachrichtigungen ein Link auf die neue Tabelle angezeigt.

Qualitätsverbesserungen

DBE-13259: Der Export von numerischen Feldern bricht nicht mehr ab, wenn nicht-numerische Werte vorhanden sind.

DBE-11370, DBE-13139, DBE-12536: Der Import wurde für PostgreSQL, Redshift, Exasol, Hive, Clickhouse, DB2 und HSQL schneller.

Navigation

Verhalten der Enter-Taste in der Navigationsleiste

Das Verhalten der Navigationsleiste ist jetzt übersichtlicher – die Enter-Taste erweitert immer den Knoten.

 

Zuvor öffnete die Enter-Taste Daten für Tabellen und öffnete Konsolen für Datenquellen.

Wenn Sie von einem Objekt in der Navigationsleiste aus navigieren möchten, anstatt seinen Knoten zu öffnen, können Sie diese Tastenkürzel für die Navigation verwenden:

  • DDL öffnen: Strg+B
  • Daten öffnen: F4
  • Im Datenbankstruktur auswählen: Alt+Umschalt+B

Signaturen im Popup Go To

Wenn Sie jetzt nach einer Funktion, einer Prozedur oder einem Operator suchen, zeigt DataGrip die Signatur im Fenster Go To an. Dies ist hilfreich, wenn Sie stark mit Überladungen arbeiten.

Allgemeines

Lokalisierte Bedienoberfläche

Ab dieser Version können Sie DataGrip mit einer lückenlos lokalisierten Bedienoberfläche in Chinesisch, Koreanisch und Japanisch verwenden. Die Lokalisierungen sind als separate Sprachpaket-Plugins verfügbar, die einfach in DataGrip installiert werden können. Mehr als 1,5 Millionen Benutzer*innen haben bereits begonnen, die teilweise lokalisierten EAP-Versionen unserer Sprachpakete zu verwenden. Jetzt können Sie eine vollständige Lokalisierung genießen!

Neuer Standort für Projekte

In DataGrip befinden sich die Projekte jetzt standardmäßig an demselben Ort wie in allen anderen IntelliJ-basierten IDEs – im Home-Ordner des Benutzers, im Unterordner DataGripProjects.

 

Ihr Projekt in DataGrip ist ein Komplex aus Ihren Datenquellen, Konsolen- und Scratch-Dateien und angehängten Ordnern. Früher wurden sie im Konfigurationsordnergespeichert, was bedeutete, dass jedes Mal, wenn Sie Ihre IDE aktualisierten, die Projekte zusammen mit den IDE-Einstellungen kopiert wurden.

Dies führte manchmal dazu, dass die Datenquellenliste leer wurde. Dieses Problem wurde behoben, und jetzt verhält sich DataGrip in der gleichen Weise wie andere IDEs.

Aufgrund von Fehlern bei der Projektmigration haben diejenigen, die den ersten EAP-Build verwendet haben, möglicherweise ihre Favoriten, Lesezeichen, Ausführungskonfigurationen oder Daten über virtuelle Fremdschlüssel verloren. Um diese wiederherzustellen, migrieren Sie bitte erneut von der vorherigen Version. Die Details sind hier beschrieben: DBE-13410.

Einstellungen

Zurück- und Vorwärts-Schaltflächen

Diese Schaltflächen erleichtern das Navigieren im FensterSettings und helfen, sich dort nicht zu verirren.

Erweiterte Einstellungen

Wir haben Advanced Settings als neuen Knoten in Preferences/Settings hinzugefügt. In diesem Abschnitt finden Sie Optionen für spezielle Anwendungsfälle, die praktischerweise nach IDE-Tools gruppiert sind. Ein Großteil der Einstellungen wurde aus der Registry übernommen, einige davon sind jedoch neu.

Ein paar bemerkenswerte Einstellungen:

  • Linker Rand im Distraction-free-Modus.
  • Möglichkeit, den Cursor so einzustellen, dass er sich nach unten bewegt, nachdem Sie die Aktion Comment with Line Comment verwendet haben.
  • Möglichkeit, das Verhalten beim Doppelklick auf eine Registerkarte anzupassen.

Aktion Show scratch files

Eine neue Aktion Show Scratch Files (zu finden über Find Action: Cmd+Shift+A) zeigt eine Liste von Scratches mit Snippets in einem Popup an. Sie hat die gleiche Benutzeroberfläche wie das Popup Recent Locations mit Schnellsuche und Löschen.

Verwalten der Popups im Toolfenster Services

Wenn eine Abfrage keine Daten zurückgibt, besteht kein Anlass, das Services-Toolfenster anzuzeigen, wenn es zuvor ausgeblendet war. Sie können jetzt frei definieren, bei welchen Vorgängen das Services-Toolfenster angezeigt werden soll.

Qualitätsverbesserungen

DBE-12079: PostgreSQL Wir haben den Introspector überarbeitet. Der Hauptvorteil des neuen Introspektors für Sie ist – keine Objektduplikate mehr!

DBE-13164: Kein Einfrieren mehr bei der Eingabe von JOIN-Anweisungen zusammen mit der Verwendung von virtuellen Fremdschlüsseln.

DBE-194931: Leere Scratch-Dateien werden jetzt automatisch entfernt.