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.
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.
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.
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.
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).
DEFAULT
-Werten wird jetzt korrekt generiert. 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.
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.
H2 wird jetzt in der Version 2.x unterstützt. Hier ist die Liste der Änderungen:
ARRAY
und ROW
. Wir stellen jetzt einen JDBC-Treiber für YugabyteDB bereit, sodass Sie mit einem einzigen Klick eine YugabyteDB-Datenquelle anlegen können.
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.
AUTO_INCREMENT
-Attribut kann geändert werden. Mit einer neuen Schaltfläche können Sie beim Vergleichen von Objekten oder Schemas Quell- und Zielobjekt vertauschen.
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:
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.
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.
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.
ROWS FROM
wird jetzt unterstützt. JSONB
-Syntax wurde behoben. BEGIN ATOMIC
wird jetzt unterstützt. ALTER MATERIALIZED VIEW
wird jetzt unterstützt. USING INDEX ENABLE
wird jetzt unterstützt. CREATE MATERIALIZED VIEW LOG
-Statements wurde korrigiert. WITH TAG
wird jetzt im Statement CREATE STAGE
unterstützt. EXECUTE
wird jetzt unterstützt. JSON
wird jetzt in Statements korrekt hervorgehoben. QUALIFY
wird jetzt unterstützt. UNNEST
für Spalten wird jetzt unterstützt. UNION DISTINCT
wird jetzt unterstützt. 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:
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.
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.
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:
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.
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.