DataGrip 2022.1 est disponible
Aperçu des évolutions et améliorations de l'EDI de JetBrains pour les développeurs SQL

DataGrip 2022.1 est disponible. C'est la première mise à jour majeure de 2022. Dans la version précédente, l'EDI de JetBrains destiné aux administrateurs de bases de données et développeurs SQL a apporté un bon lot d'améliorations à différents niveaux : éditeur de données, bases de données dans le système de contrôle de version, connectivité, explorateur de données, console de requête, importation et exportation, etc. Dans la version 2022.1, JetBrains a plutôt travaillé pour offrir une meilleure utilisabilité avec de nombreuses évolutions et améliorations allant dans ce sens.

Importation/Exportation

Copie de plusieurs objets

Il s'agit sans aucun doute de l'amélioration la plus significative de cette version. Vous pouvez désormais sélectionner plusieurs tables et les copier dans un autre schéma. Sélectionnez les tables que vous voulez copier et appuyez sur F5 pour ouvrir la boîte de dialogue d'exportation.


Comme pour l'exportation d'une seule table, vous pouvez mapper les colonnes et visualiser et modifier le DDL de la nouvelle table.

Comme vous le savez peut-être, DataGrip prend en charge l'exportation entre systèmes de gestion de bases de données, le schéma cible peut donc appartenir à n'importe quelle base de données de votre projet. Ainsi, copier par exemple toutes les tables de votre base de données PostgreSQL vers SQL Server est un jeu d'enfant.


Vous pouvez également indiquer une table existante pour cible au lieu d'une nouvelle. Dans ce cas, les données de la table source seront ajoutées dans la table cible.


Éditeur de données

Format d'affichage par défaut pour les cellules binaires

JetBrains a ajouté un nouveau paramètre, Automatically detect binary values, avec deux options : UUID et Text. La détection des identifiants uniques universels peut maintenant être désactivée.


[MongoDB] Modification de champs dans les résultats de requêtes

Vous pouvez désormais modifier les résultats des requêtes sur les collections MongoDB directement depuis une console. Cela fonctionnera même si .find() est suivi par des méthodes comme sort() ou limit().


[SQL Server] Prise en charge des résultats dans l'éditeur en mode batch

Lorsque plusieurs instructions sont exécutées simultanément dans Transact SQL, elles sont exécutées en mode batch (traitement par lots). Auparavant, cela compliquait l'affichage des résultats dans l'éditeur pour chaque requête, mais DataGrip gère désormais correctement cette situation.


Introspection

Modèles de session pour l'introspection

Parfois, l'introspection nécessite des autorisations spéciales, accordées à des utilisateurs précis. Il est désormais possible d'utiliser des identifiants dédiés pour l'introspection. Pour cela, créez d'abord un modèle de session dédié dans l'onglet Options.


Utilisez ensuite ce modèle pour l'introspection en sélectionnant son nom dans le champ Use session template de la section Introspection.


[Oracle] Introspection fragmentaire

Vous pouvez désormais actualiser un objet indépendamment de tous les autres objets de la base de données.


Cela peut être particulièrement utile si vous utilisez notre nouvelle fonctionnalité Introspection levels. Pour visualiser le code source d'un seul objet, il vous suffit de cliquer sur le bouton Refresh Object dans l'explorateur de base de données.

De plus, lorsque vous ouvrez l'éditeur de code source de l'objet, DataGrip vous donne la possibilité d'introspecter l'objet sélectionné.


Prise en charge de la version 2.x de H2

JetBrains a ajouté la prise en charge de la version 2.x de H2. Les changements sont les suivants :

  • DataGrip introspecte désormais les types correctement. La plupart des problèmes étaient liés aux types composites : ARRAY et ROW.
  • Les colonnes avec des séquences intégrées (auto_increment, generated always as identity, etc.) sont maintenant introspectées correctement.
  • Les contraintes de contrôle et les clés étrangères ne sont plus perdues.
  • Les sources sont chargées pour les vues, les déclencheurs, les routines.
  • Les informations sur les prédicats de contrôle sont affichées pour les domaines.


Ajout d'un support de base de YugabyteDB

JetBrains fournit maintenant le pilote JDBC pour YugabyteDB, et vous pouvez créer une source de données YugabyteDB en un seul clic.


Génération de code

Nouvelle version de Modify Table

JetBrains est en train de remanier légèrement la fenêtre Modify Table. La nouvelle version a une interface utilisateur entièrement générée à partir de propriétés introspectives, ce qui permet d'utiliser de nombreux paramètres associés à une base de données spécifique.

Pour l'instant, JetBrains ne publie qu'une petite partie de cette modification, mais elle peut déjà être très utile. La nouvelle fenêtre Modify Table vous permet d'ajouter et de modifier les contraintes de contrôle des colonnes, ce qui était auparavant impossible. En outre, vous pouvez maintenant modifier toutes les propriétés des tables et des colonnes introspectées par DataGrip.


Vous devriez apprécier particulièrement la nouvelle interface utilisateur pour les colonnes, car elle ne comporte plus de réduction ou d'expansion que de nombreux utilisateurs trouvaient frustrantes.

Comparateur Diff de bases de données

Permuter la source et la cible

JetBrains a introduit un bouton qui vous permet de permuter la source et la cible lors de la comparaison d'objets ou de schémas.


Éditeur de code

Intention Convert to subquery

JetBrains inaugure une nouvelle intention très pratique, Convert To Subquery. Vous n'avez plus besoin d'utiliser Surround Live Template pour convertir les sous-requêtes. D'ailleurs, vous n'avez même pas besoin de sélectionner une requête. Il suffit d'appuyer sur Alt+Entrée| Convert To Subquery.


Meilleur algorithme d'auto-indentation

JetBrains a amélioré les algorithmes d'indentation automatique. Il y a quelques problèmes qui ont été signalés avec l'auto-indentation, mais en travaillant sur leur correction, JetBrains est allé beaucoup plus loin et a considéré toutes les situations et tous les cas possibles, donc l'auto-indentation devrait maintenant fonctionner correctement à presque tous les niveaux.


[PostgreSQL] Prise en charge des types à plusieurs plages

Les types à plusieurs plages sont apparus dans PostgreSQL 14. JetBrains a ajouté la prise en charge de ceux qui sont intégrés.


Les types à plusieurs plages personnalisés seront pris en charge à l'avenir.

Exécution de requêtes

Annulation des demandes en cours

Auparavant, lorsque vous cliquiez plusieurs fois sur le bouton Cancel statement, la requête semblait être arrêtée mais continuait en fait à s'exécuter dans la base de données.

Il y avait une logique complexe derrière ce comportement. Au premier clic, DataGrip envoyait une demande d'annulation à la base de données, tandis qu'au second clic, le processus du pilote JDBC était annulé pour mettre fin à toutes les connexions à la source de données (on pourrait appeler cela la désactivation de la source de données). En conséquence, DataGrip recevait une erreur pour la deuxième requête d'annulation parce que la connexion avait été perdue, et non parce que l'annulation avait été effectivement réalisée.

JetBrains a simplifié la logique d'annulation. Il devrait maintenant être clair que c'est bien la requête qui est annulée :

  • L'indicateur de progression sur la gouttière affiche un carré rouge pendant l'annulation de la requête.
  • Une barre de progression de l'annulation s'affiche. Elle identifie la source de données et la session.


DataGrip ne désactive plus les sources de données sans avertissement, car cela peut être dangereux pour certains processus se déroulant simultanément. Ainsi, si vous cliquez sur l'icône Cancel une deuxième fois, DataGrip vous demandera si vous voulez vraiment stopper le processus distant ou si vous voulez continuer à attendre. Si vous choisissez de désactiver la source de données, la requête sera arrêtée pour DataGrip, mais elle continuera à s'exécuter dans la base de données.


Après 10 secondes d'inactivité, il vous sera proposé de désactiver la source de données. Une fois la requête annulée, une icône en forme de gouttière ressemblant au symbole « Non » s'affichera à gauche de celle-ci.


Annulation des connexions

Auparavant, lorsque vous essayiez d'interrompre une requête pendant la création d'une connexion, la source de données était désactivée.

Vous pouvez désormais interrompre non seulement l'exécution d'une requête, mais aussi la création d'une connexion. C'est particulièrement intéressant pour la toute première requête dans la console, qui crée également une connexion.

Vous pouvez maintenant arrêter le processus de création d'une connexion sans désactiver la source de données : si vous cliquez sur le bouton Cancel pendant la création de la connexion, cette dernière sera interrompue et le message Connection canceled s'affichera.


Ce changement ne s'applique pas qu'aux requêtes effectuées à partir de la console de requête. Par exemple, si vous créez une connexion avant de lancer une introspection, l'interruption de l'introspection annulera la création de la connexion sans désactiver la source de données.

Généralités concernant l'EDI

Paramètres remaniés

La structure des paramètres Preferences pour la section Database n'a pas changé depuis la première version de DataGrip. JetBrains a décidé qu'il était temps d'améliorer l'ergonomie de la section en actualisant sa structure. Voici le résultat de notre travail :


Le paramètre Track databases/schemas creation and deletion a été déplacé de la section General vers Data Source Properties | Options et fait désormais référence à une source de données spécifique. Ce paramètre détermine si la liste des schémas doit être mise à jour après la création ou la suppression de schémas dans la console de requête.

D'autres paramètres restent globaux mais ont été déplacés dans des sections plus appropriées.

Veuillez noter que dans le cadre de cette mise à jour, les paramètres suivants seront réinitialisés à leur valeur par défaut :

  • 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.

Onglets divisés uniformément

Vous pouvez maintenant répartir l'espace de travail entre les onglets de l'éditeur afin qu'ils aient tous la même largeur. Pour cela, cliquez sur Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits.


Exportation de diagrammes UML vers d'autres formats

Il est désormais possible d'exporter des diagrammes sous forme de fichiers yEd .graphml, JGraph .drawio, Graphviz .dot, Graphviz .dot avec positions, Mermaid .md, Plantuml et IDEA .uml, ce qui les rend compatibles avec des outils tiers.


Nouveautés et téléchargement de DataGrip 2022.1