Nouveautés de DataGrip 2019.1

Nouvelle prise en charge de DBMS

Dans cette version, nous avons porté une attention particulière à la prise en charge de plusieurs nouvelles bases de données.

Greenplum est une base de données d'analyse basée sur PostgreSQL. Elle est actuellement développée par Pivotal et la communauté Open Source.

Vertica est une solution de stockage par colonnes conçue pour gérer de gros volumes de données.

Apache Hive est un entrepôt de données bâti sur Apache Hadoop pour assurer les requêtes de données et les analyses.

Snowflake est un entrepôt de données basé sur le Cloud. Dans sa version 2019.1, DataGrip ne prend en charge que le dialecte SQL ; la prise en charge de l'introspection viendra plus tard.

Boîte de dialogue Connection

Général

Nous réorganisé les champs de cette boîte de dialogue pour rendre le processus de connexion plus convivial.

Le champ Connection type remplace l'ancienne valeur : URL type. Il détermine l'ensemble de l'interface de cette boîte de dialogue et c'est pourquoi il est passé au premier plan, ainsi que le sélecteur de pilotes.

Le champ Database est placé après les informations d'identification, car ces informations sont parfois nécessaires pour fournir la liste de bases de données. Cette liste est appelée par Ctrl+Espace

L'enregistrement des mots de passe est désormais implémenté sous forme de liste déroulante. Elle comporte quatre options : Never, Until restart, For session et Forever. For Session est probablement la seule option nécessitant une explication : elle enregistre votre mot de passe jusqu'à ce que vous vous déconnectiez de la source de données.

D'autre part, il devient possible de créer un mot de passe vide depuis l'interface au moyen d'un menu contextuel.

Les résultats de Test connection sont désormais intégrés à la ligne et peuvent être copiés dans le presse-papiers grâce à un petit bouton dédié. Un lien vers la page de dépannage a également été ajouté.

Dès la version 2019.1, le bouton Test Connection ne sera plus désactivé, même si aucun pilote n'a été téléchargé. Lorsque vous cliquez sur Test Connection, DataGrip propose de télécharger des pilotes JDBC.

Options

Nous avons déplacé les paramètres Read-only, Auto-Sync, et Transaction control ici, en provenance de l'onglet General.

Nouveaux paramètres :
Run keep-alive query each N seconds permet de maintenir la connexion active. Vous pouvez définir la requête personnalisée dans les paramètres du pilote pour les bases de données qui ne sont pas prises en charge.
Auto-disconnect after N seconds. Le nom de cette fonction est transparent.
Startup script est une requête SQL qui s'exécute à chaque fois que vous établissez une connexion. N'oubliez pas que si Single connection mode n'est pas sélectionné, chaque nouvelle console crée une nouvelle connexion.

Paramètre renommé:
Warn if editing an outdated DDL est le nouveau nom de Notify when the outdated object is opened.

Schémas

Object filter a été transféré ici en provenance de l'onglet Options.

Liste de sources de données

Amélioration mineure : DDL data sources dispose désormais de son propre groupe dans la liste de sources de données, dans la boîte de dialogue de connexion.

Recherche et navigation

Emplacements récents

La nouvelle fenêtre contextuelle Recent Locations donne la liste des lignes de code consultées/modifiées récemment. Elle les présente sous forme d'extraits de code avec quelques lignes avant et après la ligne concernée.

Cette fenêtre contextuelle s'inspire de Recent Files, mais ajoute la possibilité de recherche en fonction des emplacements consultés. Cette fonctionnalité est très utile notamment lorsque vous vous souvenez de l'idée générale du code, mais pas de son emplacement. Elle l'est d'autant plus lorsque vous travaillez avec plusieurs consoles de recherche, car elles utilisent généralement des noms très proches !

Appuyez sur Suppr/Retour arrière pour supprimer des emplacements de la fenêtre contextuelle.

Le raccourci par défaut de cette fenêtre contextuelle est Ctrl+Maj+E.

Si vous avez l'habitude d'appuyer sur Ctrl+Maj+E pour appeler les fichiers modifiés récemment, utilisez deux fois Ctrl+E pour cela.

Rechercher dans le chemin

DataGrip peut étendre les recherches au code source des objets. Cela n'était possible auparavant qu'en sélectionnant la portée All Places. Nous avons légèrement retouché cette interface et supprimé les onglets Module et Project.

Une nouvelle portée est disponible : Attached Directories. Utilisez-la si vous souhaitez faire des recherches dans les fichiers depuis la fenêtre d'outils Files.

Fenêtre contextuelle Go-to

Toutes les actions de navigation fonctionnent désormais à partir de là.

For instance, if you’re searching for a table, see what you can open from right here:
Table’s DDL: Ctrl+B.
Table’s data: F4 (Enter does the same for tables).
Modify Table dialog: Ctrl+F6.
Locate in… popup: Alt+F1 (Use it to see the object in the database tree view).
Quick doc popup: Ctrl+Q.
SQL generator: Ctrl+Alt+G.

Il y a beaucoup plus d'actions liées aux objets que vous voyez ici !

D'autre part, n'oubliez pas les paramètres Navigation settings dans la section Database | General. N'hésitez pas à créer votre propre flux, car DataGrip couvre quasiment tous les scénarios possibles.

Analyse du code

Éléments combinés dans la saisie automatique

Nous avons ajouté des options combinées à la liste de saisie automatique pour les instructions CREATE et DROP. Par exemple, lorsque vous commencez à taper CREATE, vous pouvez sélectionner CREATE TABLE.

Autre avantage : vous pouvez utiliser des abréviations !

Nouvelles inspections

Les inspections Usages of GOTO statements et Named arguments should be used sont désactivées par défaut, car peu de développeurs souhaitent être informés de ce genre de chose.

L'inspection Usages of GOTO statements comporte trois options :
- Report all GOTO statements (signaler toutes les instructions GOTO)
- Report uses of GOTO statements to exit a loop (signaler les utilisations d'instructions GOTO permettant de quitter une boucle)
- Report backward GOTO statements (signaler les instructions GOTO permettant un retour en arrière).

Named arguments should be used. Certains développeurs préfèrent utiliser les arguments nommés, car cela rend le code plus lisible.

DataGrip vous prévient également si le curseur que vous utilisez n'est pas ouvert lorsque vous êtes dans une procédure ou une fonction.

Travail avec des fichiers

La nouvelle version inclut l'option Default Directory dans la section Settings/Preferences | Appearance & Behavior | System Settings. Elle définit l'emplacement où votre nouveau projet sera créé par défaut.

L'action Save as… pour le fichier de console :
1. Propose le répertoire de projet par défaut.
2. Conserve le dernier dossier choisi.

Une nouvelle action, Detach directory, est disponible pour les dossiers dans la fenêtre d'outils Files. Utilisez-la depuis le menu contextuel ou affectez-lui un raccourci.

Vous pouvez formater les fichiers depuis le menu contextuel sans les ouvrir.

Vue arborescente de la base de données

Nous avons amélioré l'introspection des bases de données pour IBM DB2. Vous devriez à présent voir les nouveaux objets suivants dans l'arborescence de base de données : trigger, method, module, data type, variable, condition, sequence, check constraint, role et global temporary table.

Cette arborescence enregistre le contexte et par conséquent le nom de la source de données s'affiche toujours en haut.

Nous avons également ajouté des icônes pour certaines bases de données que nous ne prenons pas encore en charge. Auparavant, si vous aviez de nombreuses sources de données provenant de bases de données non prises en charge, elles créaient toutes sortes de problèmes d'affichage dans la fenêtre Database tool. Nous espérons avoir amélioré leur aspect.

Vous pouvez utiliser l'une de nos nouvelles icônes personnalisées pour tout le reste. Choisissez l'icône voulue dans l'onglet Options des paramètres du pilote.

Autre

Thèmes personnalisables

Cette version permet de personnaliser tous les aspects de l'IDE, car vous avez à présent la possibilité de concevoir votre propre thème de A à Z. Nous avons créé quelques nouveaux thèmes pour vous aider à commencer. Ils peuvent être téléchargés sous forme d'extensions.

Vous pouvez littéralement changer la couleur de tout ce que vous voulez . Créez votre propre extension de thème avec DevKit et modifiez l'aspect de l'IDE au moyen d'un fichier JSON. Voici quelques liens qui pourront vous être utiles :

Tutoriel détaillé sur la création de votre propre thème personnalisé.

Article de blog relatif à la création de thèmes pour IntelliJ Platform.

Thème Cyan

Thème Violet Foncé

Editeur de données

Le filtre a été amélioré et permet de reprendre les valeurs du presse-papiers.

Prise en charge de Definer

Nous avons ajouté la prise en charge de l'attribut DEFINER dans MySQL et MariaDB.

Tout d'abord, vous pouvez choisir si le générateur SQL doit ajouter un attribut DEFINER au code généré.

Ensuite, vous pouvez ignorer les attributs DEFINER pendant la migration.

Correctifs de bugs

  • Les schémas qui ne sont pas choisis pour l'introspection ne sont plus utilisés dans la comparaison. DBE-7604
  • Le qualificateur de schéma n'est plus ignoré lors de la création de la clé étrangère. DBE-4993
  • La colonne référencée de la clé étrangère n'est plus ignorée dans la boîte de dialogue Modify Table. DBE-7560
  • Faux positifs corrigés lors de la détection du code inaccessible. DBE-7554
  • [MySQL] Nous avons corrigé le problème relatif à la valeur NULL remplaçant la date vide pour tous les connecteurs. DBE-69
  • [MariaDB] Erreur d'introspection corrigée. DBE-7743
  • [SQL Server] COUNT() ne renvoie plus de résultats incorrects. Le problème de pilote n'est pas encore corrigé, par conséquent nous avons apporté des modifications de notre côté. DBE-2114
  • [SQL Server] Les tables étaient parfois dupliquées. Ce n'est plus le cas. DBE-7297
  • [Oracle] Le bouton Enable DBMS_OUTPUT est de retour. DBE-4702
  • [Oracle] Le problème relatif aux segments temporaires dans . DBE-7443 a été corrigé.
  • [Oracle] L'introspection du code des paquets et des fonctions fonctionne correctement. DBE-6768