Nouveautés de DataGrip 2021.2

DataGrip 2021.2 est là ! Il s'agit de la seconde mise à jour majeure de 2021 et elle apporte de nombreuses améliorations. Regardons de plus près ce qu'elle propose !

Source de données DDL

La génération de sources de données DDL est une autre étape du développement à long terme d'une meilleure gestion des versions de bases de données. Grâce à cette fonctionnalité, vous pouvez conserver vos fichiers DDL sous un système de VCS et les régénérer à chaque fois que la structure de votre base de données est mise à jour.

Il est maintenant possible de générer une source de données DDL basée sur une source réelle. Les fichiers DDL sont créés localement et la nouvelle source de données est basée sur ces fichiers. Ainsi, vous serez toujours en mesure de régénérer ces fichiers et d'actualiser la source de données DDL.

Découvrons plus en détail comment cela fonctionne.

Nous avons ajouté un nouvel élément de menu, Dump to DDL data source, au menu contextuel SQL Scripts.

Lorsque la boîte de dialogue s'ouvre, vous devez spécifier le dossier dans lequel les fichiers nouvellement créés seront stockés.

Dans l'onglet Generation, indiquez comment ces fichiers DDL doivent être générés.

Enfin, cliquez sur OK pour créer la source de données DDL.

Le dossier contenant les nouveaux fichiers est automatiquement joint à votre projet.

Création d'objets

Dans la version 2021.2, vous pouvez créer des objets dans une source de données DDL via l'interface utilisateur. Les fichiers correspondants seront créés localement.

Diagrammes

D'importantes fonctionnalités ont été ajoutées aux diagrammes :

  • Les commentaires des tables sont maintenant visibles
  • Les couleurs des tables sont affichées sur le diagramme
  • Vous pouvez maintenant désactiver la fusion des bords

Amélioration de la qualité :

DBE-13057 : nous avons amélioré l'algorithme qui dessine les diagrammes, de sorte que les noms des objets ne chevauchent plus les lignes de relation.

DBE-13264 : les notes ajoutées à un diagramme ne sont plus perdues lors de l'enregistrement.

Éditeur de code

Recherche dans l'historique local

Si vous recherchez une révision particulière dans l'historique local, la recherche textuelle peut vous aider !

Historique local pour les sources

DataGrip suit désormais les modifications locales pour les codes sources des objets. Cela peut s'avérer particulièrement utile lorsque vous travaillez avec des procédures et des fonctions.

Comme les sources de chaque objet sont stockées dans un fichier, toutes les modifications externes sont également considérées comme des modifications locales. Ce fichier est mis à jour lorsque vous effectuez une introspection de votre base de données.

Vous pouvez utiliser la fenêtre de l'historique local pour suivre toutes les modifications apportées à une fonction ou à une procédure. Notez que tous les changements externes sont considérés comme un seul changement s'ils se sont produits dans les deux cycles précédents l'introspection.

Les noms d'onglets longs sont de retour

Après avoir reçu des commentaires d'utilisateurs qui n'aimaient pas les noms d'onglets raccourcis, nous avons introduit la possibilité de revenir aux noms longs. Si vous préférez les noms d'onglets longs, décochez l'option Shorten Tab Titles.

Réduire la sélection

Action « Maximize Editor / Normalize Splits »

Pendant longtemps, nous avions l'action Hide All Tool Windows, qui pouvait être appelée en double cliquant sur un onglet ou en appuyant sur Maj+Ctrl+F12. De nombreux utilisateurs l'utilisaient comme une action Maximize Editor et elle fonctionnait en tant que telle !

Après avoir introduit le mécanisme de fractionnement, la situation s'est compliquée. Cette action devrait-elle masquer les onglets fractionnés ou non ? Nous avons donc fait la chose suivante :

  • L'action Hide All Tool Windows ne masque plus les onglets fractionnés.
  • La nouvelle action Maximize Editor / Normalize Splits agrandit l'onglet actuel mais ne masque pas les fenêtres d'outils.

Saisie semi-automatique du code

Portée de la saisie semi-automatique

Il est désormais possible de définir quels objets doivent être présentés dans la liste de saisie semi-automatique du code : les objets provenant uniquement du sélecteur de schéma (ou du chemin de recherche), de la portée actuelle ou de tous les schémas.

  • Suggest only search path objects : seuls les objets des schémas choisis dans le sélecteur de schémas sont proposés.
  • Suggest objects from current scope (paramètre par défaut) : la liste sera alimentée avec les objets que DataGrip peut correctement résoudre sans qualification - l'ensemble des objets du sélecteur de schéma, des instructions USE et du schéma par défaut.
  • Suggest objects from all available schemas : la liste contiendra tous les objets de tous les schémas disponibles.

Cela peut également être géré par la saisie semi-automatique intelligente. La saisie automatique intelligente est lorsque vous appuyez à plusieurs reprises sur le raccourci de la saisie automatique (généralement Ctrl+Espace).

  • En appuyant une fois ou avec un appel automatique : l'option que vous avez sélectionnée dans les paramètres est déclenchée.
  • En appuyant deux fois : tous les schémas seront ajoutés à la liste sauf ceux désactivés pour l'introspection.
  • En appuyant trois fois : tous les objets de tous les schémas et bases de données disponibles seront ajoutés à la liste.

Saisie semi-automatique des champs et des opérateurs MongoDB

Les champs et les opérateurs sont maintenant disponibles dans la saisie semi-automatique du code pour MongoDB. Consultez cet article pour en savoir plus.

Saisie automatique pour les synonymes entre différentes bases de données SQL Server

La saisie semi-automatique du code pour les synonymes entre différentes bases de données est maintenant disponible.

Saisie semi-automatique pour INSERT et colonnes calculées

Les colonnes calculées sont prises en compte lors de la saisie semi-automatique des instructions INSERT ; elles ne sont pas incluses dans l'élément suggéré.

Amélioration de la qualité 

DBE-10515, DBE-2212 : les objets du schéma du contexte actuel ont une priorité plus élevée dans la liste de suggestions de la saisie semi-automatique du code.

DBE-7781, DBE-10650 : l'alias automatique n'apparaît que lorsque c'est nécessaire.

DBE-12018 : la qualification de la table dans la saisie semi-automatique de JOIN fonctionne comme prévu.

DBE-12479 : la priorité de ASC/DESC au sein d'une clause ORDER BY a été augmentée.

DBE-13341 : la saisie semi-automatique PostgreSQL pour les instructions GRANT/REVOKE fonctionne comme prévu.

Mise en évidence du code

Prise en charge des expressions de tables communes (CTE) récursives Redshift

Les requêtes qui utilisent des expressions de table commune récursives sont désormais correctement mises en évidence et peuvent être exécutées sans être sélectionnées.

Meilleure prise en charge des CTE ClickHouse

La syntaxe des expressions de table commune, lorsque le nom CTE précède le mot-clé AS, est désormais prise en charge.

Amélioration de la qualité 

DBE-3759, DBE-13364, DBE-13365 : les inspections pour les agrégats fonctionnent de manière plus précise.

DBE-10782 : ClickHouse L'inspection qui surveille les arguments non nuls COALESCE ne génère plus de faux positifs.

DBE-13188 : Oracle les champs de type d'enregistrement PL/SQL sont résolus correctement.

DBE-10550 : DB2 les alias de table sont résolus correctement.

Explorateur de bases de données

Dossiers distincts pour les fonctions et les procédures

Si vous activez l'option Separate Procedures and Function dans les paramètres de l'explorateur de base de données (l'icône engrenage), elle prendra immédiatement effet.

Pour SQL Server, il existe des nœuds dédiés aux fonctions scalaires et aux fonctions de table. Pour PostgreSQL, il existe un nœud pour les fonctions de déclenchement.

Nœuds distincts pour les déclencheurs, les clés et les indices

Une nouvelle option d'arborescence de la base de données, Show Constraints and Triggers in the Schema, attribue aux déclencheurs, clés et indices leurs propres nœuds individuels dans l'explorateur de base de données.

 

En quoi est-ce utile ?

  • Vous pouvez trouver un objet dans un schéma en utilisant la recherche rapide.
  • Vous pouvez voir les colonnes juste en dessous du nœud de la table. Pour ce faire, assurez-vous que l'option Show Empty Groups est désactivée.

Ordre de tri naturel des objets de la base de données

Si vous désactivez l'option Sort Alphabetically dans les paramètres de l'explorateur de base de données, le tri naturel des objets sera appliqué.

Voici à quoi cela ressemble lorsque Sort Alphabetically est désactivé :

Voici à quoi cela ressemble lorsque Sort Alphabetically est désactivé :

...et lorsque Sort Alphabetically est activé :

Introspection

Introspection native CockroachDB

CockroachDB est entièrement pris en charge dans cette version. DataGrip ne s'appuiera plus sur l'introspection basée sur JDBC mais utilisera l'introspection native à la place.

 

Ceci est beaucoup plus rapide que l'introspection basée sur JDBC. De plus, role, deftype et check constraint ne pouvaient plus faire l'objet d'une introspection dans la version précédente. La liste complète des objets qui sont maintenant introspectés comprend : database, role, privilege, schema, sequence, deftype, table, view, mat view, index, column et constraints. Le fait que les partitions ne soient pas encore introspectées est un problème connu.

Clés étrangères virtuelles pour pg_catalog PostgreSQL

Il y a quelque temps, nous avons annoncé un mécanisme pour créer des clés étrangères virtuelles. Nous utilisons maintenant ce mécanisme pour couvrir pg_catalog avec des clés étrangères virtuelles. Cela apporte plusieurs améliorations.

Tout d'abord, la saisie semi-automatique de JOIN vous aide lors de vos requêtes aux tables du système :

Par ailleurs, vous pouvez naviguer en fonction des données dans les tables du système :

Tablespaces Oracle

Nous avons ajouté la prise en charge des tablespaces, des fichiers de données et des fichiers temporaires. Ils sont maintenant introspectés :

 

Ils sont également inclus dans le DDL généré :

Serveurs liés SQL Server

La prise en charge n'est pas encore totale car les métadonnées ne sont pas disponibles pour les objets dans les serveurs liés. Les serveurs liés sont affichés dans l'explorateur de base de données et la DDL pour leur création peut être générée.

Éditeur de données

Réduire la sélection

Modèles dynamiques contextuels à partir de l'éditeur de données

Introduits dans la version précédente, les modèles dynamiques contextuels fonctionnent désormais à partir de l'éditeur de données. Si vous travaillez avec une table et que vous souhaitez l'interroger, vous pouvez facilement le faire à l'aide de l'action SQL Scripts.

Option pour le tri additif

Nous avons récemment introduit Alt+Clic pour le tri additif. Mais si vous préférez utiliser Clic, vous pouvez personnaliser ce comportement :

Réduire la sélection

Ajouter/supprimer des colonnes MongoDB

Vous pouvez désormais ajouter des colonnes aux collections MongoDB. Cette action vous permet d'ajouter un nouveau champ à tout document d'une collection.

 

Delete column supprimera les données non seulement sur la page affichée, mais aussi dans l'ensemble de la collection.

Réduire la sélection

Ajouter/renommer des colonnes dans les fichiers CSV

Grâce à l'éditeur de données de l'interface utilisateur, vous pouvez désormais ajouter et supprimer des colonnes dans les fichiers CSV.

Copier la requête dans la console

Lorsqu'on travaille dans un éditeur de données, ont peut être amené à utiliser des clauses complexes dans les champs WHERE et ORDER BY. Si vous souhaitez continuer à travailler avec la requête reçue, utilisez une nouvelle action, Copy Query to Console, située dans le menu sous l'icône d'engrenage. Elle ouvre la requête dans la console par défaut.

Réduire la sélection

Plus d'option First row dans la navigation par clés étrangères

Pour rendre la navigation plus rapide, nous avons supprimé l'option First row. Vous ne verrez pas de fenêtre contextuelle mais un tableau montrant toutes les lignes à la fois (lignes référencées ou lignes contenant un lien).

Qualification dans la navigation par clés étrangères

Si vous avez des clés étrangères pointant vers des objets d'un autre schéma et que ces objets ont les mêmes noms, ils seront affichés comme qualifiés dans l'interface de navigation des clés étrangères.

Amélioration de la qualité 

DBE-12545 : la taille du champ ORDER BY est sauvegardée.

DBE-13055 : le fuseau horaire est toujours affiché pour les valeurs comportant un fuseau horaire.

DBE-9814 : Oracle les valeurs de type DATE n'affichent pas l'heure si aucune heure n'est définie.

DBE-12679 : Oracle le filtrage par le champ DATE est possible.

DBE-12716 : DB2 le filtrage par les champs binary, blob, char for bit data et varchar for bit data est possible.

Importation/Exportation

Lien vers la table après importation

Lorsque vous terminez une importation, un lien vers la nouvelle table apparaît dans les notifications.

Amélioration de la qualité 

DBE-13259 : l'exportation de champs numériques n'échoue plus s'il y a des valeurs non numériques.

DBE-11370, DBE-13139, DBE-12536 : l'importation est devenue plus rapide pour PostgreSQL, Redshift, Exasol, Hive, Clickhouse, DB2 et HSQL.

Navigation

Comportement de la touche Entrée dans la barre de navigation

Le comportement de la barre de navigation est maintenant plus simple : la touche Entrée développe toujours le nœud.

 

Auparavant, la touche Entrée ouvrait les données pour les tables et les consoles pour les sources de données.

Si vous souhaitez naviguer depuis l'objet dans la barre de navigation plutôt que d'ouvrir son nœud, vous pouvez utiliser ces raccourcis de navigation :

  • Ouvrir le DDL : Ctrl+B
  • Ouvrir les données : F4
  • Choisir dans l'arborescence de la base de données : Alt+Maj+B

Signatures dans le popup Go to

Maintenant, lorsque vous recherchez une fonction, une procédure ou un opérateur, DataGrip affiche la signature dans la fenêtre Go to. Ceci est utile lorsque vous utilisez la surcharge de manière intensive.

Général

Interface utilisateur localisée

À partir de cette version, l'interface utilisateur de DataGrip est disponible en chinois, coréen et japonais. La localisation est disponible sous forme de plugins de packs linguistiques, qui ne sont pas inclus automatiquement mais peuvent s'installer facilement dans DataGrip. Plus de 1,5 million d'utilisateurs ont commencé à utiliser la version EAP partiellement localisée de nos packs linguistiques. Vous pouvez désormais profiter d'une expérience de localisation complète !

Nouvel emplacement pour les projets

Dans DataGrip, les projets sont maintenant situés par défaut au même endroit que dans tous les autres IDE basés sur IntelliJ : dans le dossier utilisateur, dans le sous-dossier DataGripProjects.

 

Votre projet dans DataGrip est un ensemble de vos sources de données, de vos fichiers de console et temporaires, et de vos dossiers joints. Ils étaient auparavant stockés dans le dossier de configuration, ce qui signifie que chaque fois que vous mettiez à jour votre IDE, les projets étaient copiés avec les paramètres de l'IDE.

Ceci a parfois provoqué la disparition de sources de données. Ce problème a été résolu et DataGrip se comporte à présent comme les autres IDE.

En raison d'erreurs dans la migration des projets, les utilisateurs du premier build de l'EAP ont pu perdre leurs favoris, leurs signets, leurs configurations d'exécution ou les données relatives aux clés étrangères virtuelles. Pour les restaurer, veuillez migrer à nouveau depuis la version précédente. Vous trouverez ici toutes les informations à ce sujet : DBE-13410.

Paramètres

Boutons arrière et avant

Ces boutons permettent de naviguer plus facilement dans la fenêtre Settings et de ne pas s'y perdre.

Paramètres avancés

Nous avons ajouté Advanced Settings comme nouveau nœud dans Preferences/Settings. Il contient certaines options pour des cas d'utilisation spécifiques, regroupées par catégories d'outils d'IDE. La plupart des paramètres ont été transférés depuis le Registry, bien que certains d'entre eux soient nouveaux.

Quelques paramètres notables :

  • Marge de gauche en mode Distraction-free.
  • Possibilité de paramétrer le caret pour qu'il se déplace vers le bas après avoir utilisé l'action Comment with Line Comment.
  • Personnalisation du comportement du double-clic sur un onglet.

Action Show scratch files

Une nouvelle action Show Scratch Files (trouvée via Find Action: Cmd+Maj+A) affiche une liste de fichiers temporaires avec des snippets dans un popup. Elle a la même interface que le popup Recent Locations avec la recherche rapide et la suppression.

Gestion des popups de la fenêtre d'outils Services

Lorsqu'une requête ne renvoie aucune donnée, il n'est pas nécessaire d'afficher la fenêtre d'outils Services qui était précédemment masquée. Vous pouvez maintenant définir auelles opérations font apparaître la fenêtre d'outils Services.

Amélioration de la qualité 

DBE-12079 : PostgreSQL nous avons retravaillé l'introspecteur. Pour vous, le principal effet du nouvel introspecteur est qu'il n'y a plus d'objets en double  !

DBE-13164 : il n'y a plus de blocages lorsque vous saisissez des instructions JOIN lors de l'utilisation de clés étrangères virtuelles.

DBE-194931 : les fichiers temporaires vides sont désormais automatiquement supprimés.