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!
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.
In v2021.2 können Sie Objekte in einer DDL-Datenquelle über die UI erstellen. Die entsprechenden Dateien werden lokal erstellt.
Darüber hinaus wurden die folgenden Funktionen zu Diagrammen hinzugefügt:
Wenn Sie eine bestimmte Revision in lokalen Verlauf suchen, können Sie die Textsuche verwenden!
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.
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.
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:
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.
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.
Felder und Operatoren sind jetzt in der Codevervollständigung für MongoDB verfügbar. Lesen Sie diesen Beitrag für weitere Details.
Die Codevervollständigung für datenbankübergreifende Synonyme ist jetzt verfügbar.
Berechnete Spalten werden bei der Vervollständigung von INSERT
-Anweisungen berücksichtigt – sie sind nicht im vorgeschlagenen Element enthalten.
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.
Abfragen, die rekursive Common Table Expressions (CTEs) verwenden, werden jetzt korrekt hervorgehoben und können ausgeführt werden, ohne dass sie ausgewählt sind.
Die Syntax für Common Table Expressions, bei der der CTE-Name vor dem AS
-Schlüsselwort steht, wird jetzt unterstützt.
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.
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.
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?
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:
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.
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:
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:
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.
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.
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:
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.
Mit Hilfe des UI-Dateneditors können Sie jetzt Spalten in CSV-Dateien hinzufügen und entfernen.
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.
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.
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.
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.
Nach Abschluss eines Imports wird in den Benachrichtigungen ein Link auf die neue Tabelle angezeigt.
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:
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.
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!
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.
Diese Schaltflächen erleichtern das Navigieren im FensterSettings und helfen, sich dort nicht zu verirren.
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:
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.
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.
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.