DataGrip 2022.1, la première mise à jour majeure de 2022, est disponible. Elle comprend de nombreuses évolutions et améliorations afin d'offrir une meilleure utilisabilité. Regardons tout cela de plus près.
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. Copier 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.
Nous avons 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.
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().
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.
En outre, DataGrip supprime désormais toutes les instructions SQLCMD lors de l'exécution de requêtes en mode batch (voir DBE-14920 pour en savoir plus).
DEFAULT
est maintenant générée correctement. 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.
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é.
Nous avons ajouté la prise en charge de la version 2.x de H2. Les changements sont les suivants :
ARRAY
et ROW
. Nous fournissons maintenant le pilote JDBC pour YugabyteDB, et vous pouvez créer une source de données YugabyteDB en un seul clic.
Nous sommes 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, nous ne publions 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.
Nous pensons que vous apprécierez 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.
AUTO_INCREMENT
. Nous avons introduit un bouton qui vous permet de permuter la source et la cible lors de la comparaison d'objets ou de schémas.
Nous travaillons constamment à l'amélioration de la qualité de la fenêtre de comparaison des bases de données. Certains correctifs avaient été publiés dans la version 2021.3, mais d'autres sont des nouveautés de la version 2022.1, notamment :
Nous inaugurons 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.
Nous avons amélioré les algorithmes d'indentation automatique. Quelques tickets existaient à ce sujet (DBE-14825 et DBE-8742), mais nous sommes allés beaucoup plus loin et avons considéré toutes les situations et tous les cas possibles, de sorte que l'auto-indentation fonctionne désormais correctement partout.
Les types à plusieurs plages sont apparus dans PostgreSQL 14. Nous avons ajouté la prise en charge de ceux qui sont intégrés.
Les types à plusieurs plages personnalisés seront pris en charge à l'avenir.
ROWS FROM
. JSONB
. BEGIN ATOMIC
. ALTER MATERIALIZED VIEW
. USING INDEX ENABLE
. CREATE MATERIALIZED VIEW LOG
. WITH TAG
dans l'instruction CREATE STAGE
. EXECUTE
. JSON
est désormais mis en évidence correctement dans les déclarations. QUALIFY
est maintenant pris en charge. UNNEST
est désormais prise en charge. UNION DISTINCT
est maintenant pris en charge. 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 (nous appellerons 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.
Nous avons donc simplifié la logique d'annulation. Il devrait maintenant être clair que c'est bien la requête qui est annulée :
Nous ne désactivons 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.
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.
La structure des paramètres Preferences pour la section Database n'a pas changé depuis la première version de DataGrip. Nous avons 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 :
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.
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.