DataGrip 2021.3 est là ! C'est la troisième grande mise à jour de 2021 et elle apporte de nombreuses améliorations à différents niveaux. Regardons de plus près ce qu'elle propose !
Nous avons ajouté la possibilité d'afficher une vue Aggregate pour une plage de cellules. Cette fonctionnalité très attendue vous permettra de gérer vos données et vous épargnera l'écriture de requêtes supplémentaires ! Cela rend l'éditeur de données encore plus puissant et simple d'utilisation, et le rapproche encore un peu plus d'Excel et des feuilles de calcul Google.
Sélectionnez la plage de cellules pour laquelle vous voulez afficher la vue, puis faites un clic droit et sélectionnez Show Aggregate View.
En résumé :
Une valeur d'agrégat s'affiche dans la barre d'état et vous pouvez en choisir le type (somme, moyenne, médiane, min, max, etc.).
Appuyer sur F4 sur n'importe quel nœud de schéma permet d'afficher une vue de table du contenu du nœud. Par exemple, vous pouvez obtenir une vue de table regroupant l'ensemble des tables du schéma :
Vous pouvez également afficher une vue en tableau des colonnes d'une table :
Cette vue permet d'afficher/de masquer les colonnes, d'exporter les données en de nombreux formats et d'utiliser la recherche de texte. Mais surtout, les actions de navigation suivantes fonctionnent ici également :
Si vous divisez l'éditeur de données et l'ouvrez à nouveau dans la même table, ses deux fenêtres sont désormais totalement indépendantes l'une de l'autre. Vous pouvez appliquer les filtres et les options de tri nécessaires pour les comparer et travailler avec les données. Auparavant, le filtrage et le tri étaient synchronisés, ce qui était loin d'être idéal.
Vous pouvez choisir une police dédiée pour l'affichage des données dans la section Database | Data views | Use custom font.
L'éditeur de données permet à présent de sélectionner plusieurs valeurs et de naviguer dans les données associées.
Vous pouvez spécifier la méthode de tri par défaut pour les tableaux en choisissant entre ORDER BY et client-side. Si vous sélectionnez <0>client-side0>, DataGrip n'effectue pas de nouvelles requêtes et ne trie que la page actuelle. Ce paramètre est disponible dans la section Database | Data views | Sorting | Sort via ORDER BY.
Les données de 16 octets s'affichent désormais au format UUID par défaut. Vous pouvez également personnaliser la façon dont les données binaires s'affichent dans la colonne de l'éditeur de données.
filter {}
et sort {}
MongoDB L'auto-complétion du code est maintenant disponible lorsque vous filtrez les données dans les collections MongoDB.
Cette version vient compléter la précédente version de l'IDE, dans laquelle nous avions introduit la possibilité de générer une source de données DDL basée sur une source réelle. Désormais, ce workflow est totalement pris en charge. Vous pouvez :
Pour rappel, une source de données DDL est une source de données virtuelle dont le schéma repose sur un ensemble de scripts SQL. Le stockage de ces fichiers dans le système de contrôle de version (VCS) est une méthode possible pour conserver votre base de données dans ce système.
Les propriétés de configuration des données comportent un nouvel onglet, DDL mappings, permettant de définir quelle source de données réelle est mappée à chaque source de données DDL.
Pour en savoir plus sur la façon dont ces nouvelles fonctionnalités peuvent vous aider avec vos flux de VCS au quotidien, consultez cet article.
Pour comparer et synchroniser votre source de données DDL avec la source réelle, utilisez le menu contextuel et sélectionnez Apply from... ou Dump to... dans le sous-menu DDL Mappings.
L'interface utilisateur de cette fenêtre indique clairement dans le panneau de droite les résultats que vous obtiendrez après la synchronisation.
La légende du panneau droit indique la signification des couleurs pour votre résultat potentiel :
L'onglet Script preview affiche le script du résultat qui peut ensuite être ouvert dans une nouvelle console ou exécuté depuis cette boîte de dialogue. Le résultat de ce script applique les modifications pour faire de la base de données de droite (cible) une copie de la base de données de gauche (source).
Outre l'onglet Script preview, le panneau inférieur comporte deux autres onglets : Object Properties Diff et DDL Diff. Ils indiquent les différences entre les versions particulières de l'objet dans les bases de données source et cible.
Rappel : si vous souhaitez seulement comparer deux schémas ou objets, sélectionnez-les et appuyez sur Ctrl + D.
Important ! La visionneuse Diff est en cours de développement. Dans la mesure où chaque base de données a ses propres caractéristiques, certains objets peuvent sembler différents, alors qu'ils sont en fait identiques. Cela peut être dû aux alias de type ou à l'omission des propriétés par défaut lors de la génération. Si vous rencontrez ce bug, merci de le signaler dans notre système de suivi.
Toutes les actions sur les fichiers sont également disponibles dans les éléments de source de données DDL. Par exemple, vous pouvez supprimer, copier ou valider les fichiers liés aux éléments du schéma depuis l'explorateur de base de données.
Si cette option est activée, votre source de données DDL sera automatiquement actualisée en fonction des modifications des fichiers correspondants. Il s'agissait déjà du comportement par défaut, mais vous avez désormais la possibilité de le désactiver.
Si vous le désactivez, les modifications des fichiers sources ne seront pas automatiquement reportées dans la source de données DDL, vous devrez cliquer sur Refresh pour les appliquer.
Le panneau Default schemas/databases permet de définir les noms de votre base de données et de vos schémas qui s'afficheront ensuite dans la source de données DDL. Les scripts DDL ne contiennent généralement pas de noms, et dans de tels cas, des noms factices sont utilisés par défaut pour les bases de données et les schémas.
Si une valeur, hormis User ou Password, comporte des espaces au début ou à la fin, DataGrip vous le signale lorsque vous cliquez sur Test Connection.
SQL Server LocalDB dispose de son propre pilote dédié dans la liste de pilotes. Cela signifie que le type de sa source de données est différent et qu'il doit être utilisé pour LocalDB. Cela présente les avantages suivants :
Il est désormais possible d'utiliser l'authentification Kerberos dans Oracle et SQL Server. Vous devez tout d'abord obtenir un ticket TGT (ticket-granting ticket) pour le principal en exécutant la commande kinit, puis DataGrip l'utilisera lorsque vous choisissez l'option Kerberos.
Cette nouvelle option de l'onglet Options vous permet d'activer DBMS_OUTPUT par défaut pour les nouvelles sessions.
Nous avons ajouté le bouton More Options pour vous permettre de mieux gérer les configurations inhabituelles lors d'une connexion. Les options actuellement disponibles permettent d'ajouter les champs Schema et Role pour les connexions Snowflake et deux éléments de menu pour configurer SSH et SSL, afin d'en faciliter la découverte.
L'onglet Advanced comporte désormais une liste Expert options. Outre l'option d'activation de l'introspecteur JDBC (il est fortement conseillé de contacter notre équipe d'assistance avant d'utiliser cette option !), les options suivantes, propres à la base de données, sont disponibles :
Les utilisateurs d'Oracle ont rencontré un problème au niveau de l'introspection de DataGrip. En effet, cette procédure prenait trop de temps en présence de nombreuses bases de données et de nombreux schémas. L'introspection désigne le processus d'obtention des métadonnées de la base de données, telles que les noms d'objet et le code source. DataGrip l'utilise pour fournir une assistance au codage, une navigation et des recherches rapides.
L'accès aux catalogues système Oracle est relativement lent et l'introspection l'était encore plus si l'utilisateur ne disposait pas de droits d'administration. Nous avons fait de notre mieux pour optimiser les requêtes d'obtention des métadonnées, mais tout a des limites.
Nous avons constaté que pour la plupart des tâches quotidiennes, y compris pour assurer une assistance efficace du codage, il n'est pas nécessaire de charger les sources des objets. Dans la plupart des cas, connaître les noms d'objets de la base de données est suffisant pour assurer la saisie semi-automatique du code et la navigation. Par conséquent, nous avons introduit trois niveaux d'introspection pour les bases de données Oracle :
L'introspection est la plus rapide au niveau 1 et la plus lente au niveau 3.
Choisissez le niveau d'introspection voulu dans le menu contextuel :
Le niveau d'introspection peut s'appliquer à un schéma ou l'intégralité de la base de données. Les schémas héritent de leur niveau d'introspection de la base de données, mais ils peuvent également être configurés de façon indépendante.
Le niveau d'introspection est représenté par les icônes en forme de pilule, près de l'icône de source de données. Plus la pilule est remplie, plus le niveau d'introspection est élevé. Une icône bleue signifie que le niveau d'introspection est configuré directement, tandis qu'une icône grise signifie qu'il est hérité.
Vous pouvez mapper votre serveur lié dans SQL Server ou votre lien de base de données dans Oracle avec une source de données valide.
Lorsque des objets externes sont mappés à la source de données, la saisie automatique du code et la résolution fonctionnent pour les requêtes utilisant ces objets externes.
Les schémas système internes (tels que pg_toast ou pg_temp) et les bases de données de modèles étaient auparavant masqués dans la liste de schémas. Il est maintenant possible de les afficher en utilisant les options correspondantes dans l'onglet Schemas.
Désormais, les flux s'affichent dans la vue base de données en complément des tables et des vues.
Les tables distribuées sont désormais placées sous un nœud dédié, dans l'explorateur de bases de données.
One of our users posted about an unfortunate situation: he executed the UPDATE
query on a production database with the condition WHERE id - 3727
(instead of =) and had millions of records updated!
Nous étions tout surpris que MySQL permette une telle situation, mais c'est la vie. Toutefois, nous ne serions pas l'équipe DataGrip si nous n'ajoutions pas une inspection pour cela ! Nous donc avons le plaisir de vous présenter la vérification des expressions booléennes dans les clauses WHERE
et HAVING
.
Si l'expression ne semble pas être explicitement booléenne, DataGrip la surligne en jaune et vous avertit avant son exécution. Cela fonctionne pour ClickHouse, Couchbase, Db2, H2, Hive/Spark, MySQL/MariaDB, Redshift, SQLite et Vertica. Dans toutes les autres bases de données, cela est signalé comme une erreur.
Désormais, les requêtes peuvent être extraites en tant que fonction de table. Pour ce faire, sélectionnez la requête, appelez le menu Refactor et utilisez Extract Routine.
JOIN
Le nouveau conseil d'incrustation vous informe de la cardinalité d'une clause JOIN
. Trois options sont possibles : un-à-un, un à plusieurs et plusieurs à plusieurs. Si vous souhaitez le désactiver, vous pouvez modifier ce paramètre dans Preferences | Editor | Inlay Hints | Join cardinality.
Les noms de base de données sont saisis automatiquement lorsque vous utilisez getSiblingDB
et les noms de collection sont complétés si vous utilisez getCollection
.
En outre, les noms de champs sont automatiquement complétés et résolus s'ils proviennent d'une collection définie avec getCollection
.
Suite à cette demande, les horodatages ne s'affichent plus par défaut dans les résultats des requêtes. Si vous souhaitez rétablir le comportement précédent, modifiez ce paramètre dans Database | General | Show timestamp for query output.
Si vous utilisez la fenêtre d'outils Services en mode fenêtre, elle est masquée par défaut derrière l'IDE. Ce nouveau paramètre vous permet de lui redonner le focus à chaque fois que vous exécutez une requête, de sorte qu'elle s'affiche dès que la requête est terminée.
D'autre part, si vous ne souhaitez plus que l'onglet correspondant dans la fenêtre d'outil Services s'active lorsque vous finissez une requête longue dans une autre console, cochez la case Activate Services output pane for selected query console only.
Lors de l'importation de fichiers .csv ou de la copie de tables/jeux de résultats, vous observerez les améliorations suivantes :
Désormais, lorsque vous ouvrez ou importez un fichier CSV, DataGrip détecte automatiquement que la première ligne est l'en-tête et contient les noms des colonnes.
DataGrip peut désormais détecter les types de colonne dans les fichiers CSV. Le principal avantage de cette option est que vous pouvez trier les données par valeurs numériques. Auparavant, elles étaient traitées comme du texte et le tri n'était pas intuitif.
Auparavant, nous avions deux instances très similaires : Favorites et Bookmarks. La différence entre les deux prêtait parfois à confusion, nous avons donc décidé de n'en garder qu'une : Bookmarks. Nous avons retravaillé le workflow de cette fonctionnalité et créé une nouvelle fenêtre d'outils dédiée.
Désormais, tous les objets ou fichiers que vous marquez comme importants (avec le raccourci F3 sous macOS ou F11 sous Windows/Linux) apparaîtront dans la nouvelle fenêtre d'outils Bookmarks.