Novedades en DataGrip 2021.1

Hoy presentamos DataGrip 2021.1, nuestra primera versión principal del año y, posiblemente, la versión más notable en la historia de nuestro IDE. Esperamos que descubra que la versión 2021.1 soluciona al menos un problema que le afecte, o tal vez conozca una nueva funcionalidad que le encante, ¡o las dos cosas! ¡Veamos!

Interfaz de usuario para derechos de acceso

Esto está disponible para PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server y Sybase.

Hemos añadido una interfaz de usuario para la edición de permisos al modificar objetos.

La ventana Modify user, que puede invocar en un usuario en el explorador de la base de datos con Cmd/Ctrl+F6, ahora tiene una interfaz de usuario para añadir permisos a los objetos:

Plantillas activas de contexto

Reducir una selección

Esta es nuestra solución para todo el que quiera generar declaraciones sencillas directamente desde el explorador de la base de datos. Las plantillas activas generales cubren muchos casos en los que necesita escribir una consulta sencilla rápidamente. Pero también comprendemos que, en ocasiones, cuando está en el contexto del explorador de la base de datos y ya está centrado en el objeto que necesita, hay un modo mejor de obtener una consulta sencilla utilizando ese objeto.

Y, por supuesto, muchas otras herramientas también utilizan este mecanismo para reducir el trabajo repetitivo, por lo que muchos usuarios ya están acostumbrados.

Aquí puede ver un breve vídeo que muestra cómo funciona:

Cada fragmento de código de esta lista es en realidad una plantilla activa, pero son todas plantillas especiales que se pueden generar en el contexto del objeto elegido. Por ejemplo, echemos un vistazo a la plantilla Select first N rows from a table.

Abra la página de configuración de las plantillas activas y busque la plantilla que necesita:

Select first N rows from a table parece una plantilla general (y se puede usar como tal). Como esta sintaxis concreta no puede utilizarse en todas las bases de datos, los dialectos correspondientes se definen para la plantilla. La principal diferencia que hace que se pueda aplicar esta plantilla en el explorador de la base de datos es la expresión especial dbObjectName, que se utiliza para la variable $table$:

Por supuesto, puede añadir sus propias plantillas o editar las existentes.

En Settings/Preferences | Database | General, elija si quiere que se genere su script en la consola actual o en una nueva.

Editor de datos

Editar datos en MongoDB

Hemos añadido una funcionalidad crucial para trabajar con MongoDB: a partir de esta versión, puede editar los datos en las colecciones de MongoDB. También está disponible una vista previa de la instrucción.

 

Para hacer que la edición sea más flexible, hemos introducido la posibilidad de cambiar el tipo de un campo desde la interfaz de usuario. Esto se puede hacer desde el menú contextual del campo o en el editor de valores:

Mejor clasificación

Hemos mejorado la clasificación de los datos:

  • Un nuevo campo ORDER BY funciona de forma similar al campo WHERE (que antes se denominaba Filter): introduzca una cláusula funcional para que se aplique a la consulta de la tabla.
  • La clasificación no está «apilada» de forma predeterminada. Si hace clic en el nombre de una columna que quiere usar para ordenar los datos, la clasificación según las otras columnas se ignorará. Si prefiere utilizar la clasificación apilada, haga clic en el nombre de una columna mientras mantiene pulsada la tecla Alt.

Si quiere utilizar la clasificación en el lado del cliente (lo que significa que DataGrip no volverá a ejecutar la consulta, pero en su lugar ordenará los datos dentro de la página actual), desmarque Sort via ORDER BY:

También es posible abrir las tablas con una clasificación predefinida sobre la base de una clave principal numérica. Esta configuración se encuentra en Settings/Preferences | Database | Data Views.

Nueva barra de herramientas

Hemos rediseñado la barra de herramientas en el editor de datos. Los botones Roll-back y Commit ya no se muestran en el modo de transacción automática, y hay dos nuevos botones: Revert changes y Find.

Transposición de resultados de una sola fila

En Settings/Preferences | Database | Data Views ahora existe la opción de transponer siempre los resultados si contienen una sola fila.

Navegación

Acciones sencillas

Hemos simplificado la navegación y nos hemos librado de las siguientes configuraciones:

Reducir una selección

Si nunca ha modificado estas configuraciones y las casillas de verificación estaban marcadas de forma predeterminada, el cambio principal para usted en la versión 2021.1 es el siguiente: Go to declaration (Ctrl/Cmd+B) cuando se invoca en un objeto en SQL ahora le lleva al DDL en vez de al árbol de la base de datos.

También hemos introducido un acceso directo para la acción Select in database tree: Alt+Mayús+B para Windows/Linux y Opción+Mayús+B para macOS.

La razón principal de este cambio es simplificar la lógica: cada acción debe llevarle al lugar que espera.

Ahora, si tiene el cursor sobre un objeto:

  • Ctrl/Cmd+B le muestra el DDL.
  • F4 muestra los datos.
  • Alt/Opción+Mayús+B resalta el objeto en el árbol de la base de datos.

Comprendemos que esto afectará a algunas costumbres, y estamos preparados para ofrecerle medios de conservar su experiencia anterior. Algunos consejos:

  • Aproveche el poder del mapa de teclas. Si le gusta utilizar Ctrl/Cmd+B para abrir el explorador de la base de datos, reasigne el acceso directo de Select in database tree.
  • Si le gusta que Ctrl/Cmd+B o Ctrl/Cmd+clic abra CREATE definition cuando el objeto utilizado en SQL no se ha creado todavía, no elimine aún estos accesos directos de Go to declaration después de configurar la reasignación del consejo anterior.
  • Si utiliza la configuración sin marcar Prefer data editor over DDL editor y le gusta que al hacer doble clic se abra el DDL, este comportamiento se puede recuperar cambiando el valor de la clave de registro: database.legacy.navigate.to.code.from.tree. Según nuestros datos, muy pocos usuarios utilizaban este flujo. También recomendamos usar accesos directos para abrir el DDL de los objetos.

Si algún caso de uso ya no está cubierto por este nuevo flujo, díganoslo.

Conectividad

Compatibilidad con Azure MFA

La autenticación interactiva Azure Active Directory es compatible. Cuando está habilitada, el navegador se abrirá de forma automática y le permitirá iniciar sesión.

Controlador Redshift 2.x

El controlador Redshift 2.x JDBC está disponible para los usuarios de DataGrip que comienzan con esta versión. La mejora principal aquí es la posibilidad de cancelar consultas.

Compatibilidad total con Google BigQuery

La compatibilidad con el dialecto Google BigQuery se añadió en la versión anterior. En esta versión la hemos ampliado para que la introspección de bases de datos y la generación de código funcionen adecuadamente y dejen de depender de la funcionalidad del controlador JDBC.

Compatibilidad con el dialecto CockroachDB

Ahora, si trabaja con los scripts CockroachDB o escribe SQL para consultar esa base de datos, su código se resaltará adecuadamente y todos los errores se mostrarán antes de que ejecute la consulta. Este es el primer paso hacia la compatibilidad plena con CockroachDB, que llegará en una de las próximas versiones.

Mejoras en la ventana de conexión

Hemos rediseñado la ventana de conexión para que sea más accesible.

  • Los controladores y las fuentes de datos ahora se muestran en dos pestañas diferentes. La lista de controladores no tendría que molestar a los usuarios con experiencia y, a su vez, ayudaría a los principiantes a no confundirlos con fuentes de datos.
  • Cada página de controlador incluye el botón Create data source.
  • El botón Test Connection se ha desplazado al pie de página para que pueda utilizarlo desde cualquier pestaña de las propiedades de la fuente de datos, no solo en la pestaña General and SSH/SSL como antes.
  • La página de propiedades de la fuente de datos DDL tiene una lista desplegable para elegir el dialecto.

El campo URL es expandible, lo que facilita la gestión de las URL largas.

Explorador de bases de datos

Reducir una selección

Facilidad para copiar y pegar fuentes de datos

La posibilidad de copiar y pegar fuentes de datos se introdujo hace mucho tiempo. Pero a partir de la versión 2021.1, puede copiar, cortar y pegar fuentes de datos utilizando algunos de los accesos directos más populares del mundo: Ctrl/Cmd+C/V/X.

  • Cuando copia una fuente de datos, el XML se copia al portapapeles y después puede compartirlo a través de una aplicación de mensajería. También puede usar la opción de pegar para pegar un extracto de XML que proceda de otro lugar.
  • Si corta y pega una fuente de datos dentro de un proyecto, simplemente se moverá, sin necesidad de contraseña. Pero la contraseña es necesaria en el resto de casos.
  • La acción de cortar se puede deshacer con Ctrl/Cmd+Z.

Nuevo diseño

El diseño predeterminado del explorador de la base de datos ha cambiado: ahora los objetos secundarios están disponibles en un nodo dedicado. La mayor parte del tiempo, la gente trabaja con tablas, vistas y rutinas, mientras que ver los usuarios, roles, espacios de tablas, contenedores de datos foráneos y muchos otros tipos de objetos no aparecen en un lugar prominente en su lista de prioridades. Por eso, estos objetos secundarios ahora se ocultan en dos nodos: Server Objects y Database Objects.

 

Si quiere recuperar el diseño antiguo, solo tiene que seleccionar Group Database and Schemas en la configuración debajo del icono de rueda dentada.

Ocultar los objetos generados automáticamente Oracle

Si utiliza Oracle, existe la opción de mostrar u ocultar los objetos generados automáticamente en el árbol, incluido los siguientes:

  • Registros de vistas materializadas
  • Las tablas subyacentes de las vistas materializadas
  • Tablas secundarias

Nuevos tipos de objetos SQLite

Se realiza la introspección de funciones, módulos y columnas virtuales para SQLite.

Mejoras para las bases de datos no compatibles

Plantillas de fuentes de datos

A partir de la versión 2021.1, es más fácil añadir la fuente de datos para las bases de datos que no admitimos. Ahora proporcionamos los controladores JDBC para AWS Athena, Informix, Presto, SAP HANA, Google Cloud Spanner y muchos otros. Busque estas bases de datos en la sección Other de la lista de bases de datos.

Hemos realizado algunas mejoras adicionales:

  • Ya no necesita descargar el controlador personalmente y crear de forma manual una fuente de datos a partir de él.
  • DataGrip proporcionará las nuevas versiones del controlador.
  • Algunas nuevas bases de datos tienen sus propios iconos dedicados.

Tenga en cuenta que la compatibilidad con estas bases de datos es limitada. Depende principalmente de las capacidades del controlador JDBC y la compatibilidad del dialecto SQL:2016 del editor SQL de DataGrip.

Análisis de consultas

Hemos introducido una nueva configuración para el uso de las bases de datos no admitidas. Al trabajar con estas bases de datos en DataGrip, necesitará utilizar el dialecto SQL:2016 o Generic. Generic es casi idéntico a SQL:2016, con solo una diferencia: DataGrip no resalta los errores que encuentra.

Para acceder a la configuración, vaya a Settings/Preferences | Database | General | Split a script for execution in Generic and ANSI SQL dialects. Puede elegir entre los siguientes valores disponibles:

  • On valid ANSI SQL statements or by separator: esta es la configuración predeterminada adecuada para la mayoría de los casos. En otras palabras, haremos todo lo posible para entender qué es lo que desea ejecutar.
  • On ANSI SQL Statements: instrucciones divididas como antes. La lógica se basa solo en lo que DataGrip considera válido según la gramática SQL:2016.
  • By statement separator: extraiga y ejecute instrucciones por separadores. Úselo si la primera opción no funciona. Para GenericSQL, el separador es un punto y coma. Tenga en cuenta que ya no se puede definir un separador personalizado.

Estos son algunos de los problemas que hemos resuelto:

  • Muchos usuarios han informado de problemas al ejecutar CTEs. Esto tendría que haberse mitigado parcialmente al actualizar la gramática Generic de SQL:92 a SQL:2016, pero la opción On valid ANSI SQL statements or by separator sigue siendo de ayuda con CTEs complejos. Otro ejemplo de una instrucción que funcionará con esta opción es la instrucción poco común MERGE.
  • La opción On valid ANSI SQL statements or by separator también ayuda a ejecutar cosas que no son instrucciones en la gramática SQL:2016, como show databases.

Asistencia a la codificación

Nombre de columna ambiguo al utilizar CTE

La inspección que señala los nombres de columnas ambiguos se ha vuelto más inteligente y ahora tiene en cuenta todas las columnas dentro de las expresiones de tabla comunes:

Las funciones del sistema puede utilizarse sin calificación SQL Server

Las funciones y los procedimientos del sistema ya no se resaltan como errores cuando se utilizan sin calificación. Ahora también admiten la navegación y la finalización.

Compatibilidad con JSON Lines

Thanks to the IntelliJ Platform, DataGrip now has support for the newline-delimited JSON Lines format used for working with structured data and logs. El IDE reconocerá los tipos de archivo .jsonl, .jslines, .ldjson y .ndjson.

Espesor de la fuente ajustable

La nueva configuración de tipografía le ayuda a ajustar el estilo de su fuente. En la versión 2021.1, puede ajustar el espesor de los estilos de fuente principal y negrita en Settings/Preferences | Editor | Fonts.

Importar / Exportar

Advertencia sobre datos no cargados

Cuando copia datos binarios que no se han terminado de cargar completamente aún, se mostrará la siguiente notificación:

Si no quiere que se trunquen los datos, aumente el valor en Settings/Preferences | Database | Data Views | Maximum number of bytes loaded per value.

Consulta en el archivo Excel

Cuando exporta a Excel, el archivo resultante contendrá la consulta en un hoja separada.

First row is header en el menú contextual

Cuando importa un archivo CSV, la opción que permite indicar que la primera fila es un encabezado ahora está disponible en el menú contextual como se muestra a continuación:

Interfaz de usuario

Reducir una selección

Adjuntar una carpeta arrastrando y soltando

Ahora es posible adjuntar una carpeta a su proyecto arrastrándola y soltándola.

Reducir una selección

Maximizar pestañas en la vista dividida

Cuando haya abiertas varias pestañas que dividen verticalmente el editor, puede hacer doble clic en ellas y maximizar la ventana del editor para cada una. Para devolver la ventana a su tamaño original, simplemente haga doble clic en ella de nuevo.

Nombres largos en los títulos de las pestañas

Hace un tiempo, introdujimos los nombres de pestañas acortados. Como no le gustó a todo el mundo, hemos añadido una configuración al respecto para que elija la opción que prefiera.