今天我们要介绍的是 DataGrip 2021.1,这是我们今年的第一个主要版本,也可能是我们 IDE 历史上最了不起的版本。 我们希望 v2021.1 能够为您解决至少一个痛点,也希望它可以给您带来心仪的新功能。 我们来深入了解一下!
这适用于 PostgreSQL、Redshift、Greenplum、MySQL、MariaDB、DB2、SQL Server 和 Sybase。
我们为修改对象时的授权编辑添加了一个 UI。
您可以使用 Ctrl+F6 在数据库资源管理器中的用户上调用 Modify user 窗口,该窗口现在具有向对象添加授权的 UI:
这是我们为从数据库资源管理器直接生成简单语句打造的全面解决方案。 常规实时模板涵盖了许多需要快速编写简单查询的情况。 但是我们也明白,有时,当您在数据库资源管理器的上下文中已经找到需要的对象,还有一个更好的方法可以使用这个对象得到简单查询。
当然,还有许多工具同样采用这种机制来减少重复工作,这也让许多用户对此习以为常。
这段简短视频展示了它的工作原理:
此列表中的每个代码段实际上都是一个实时模板,但它们都很特殊,可以在所选对象的上下文中生成。 例如 Select first N rows from a table 模板。
打开实时模板设置页面,找到需要的模板:
Select first N rows from a table 看起来像是常规模板(也确实可以这样使用)。 由于这一特定语法不能用于所有数据库,所以模板设置了相应方言。 此模板之所以适用于数据库资源管理器,主要是因为特殊表达式 dbObjectName,其用于 $table$ 变量:
当然,您也可以添加自己的模板或编辑现有的模板。
在 Settings/Preferences | Database | General 中,选择要将脚本生成到当前控制台还是新控制台。
我们为 MongoDB 添加了一项重要功能:从这个版本开始,您可以编辑 MongoDB 集合中的数据。 还有语句预览可供使用。
为了使编辑更加灵活,我们引入了从 UI 更改字段类型的功能。 可以从字段的上下文菜单或值编辑器中完成此操作:
我们改进了数据排序:
ORDER BY
字段的工作原理类似于 WHERE
字段(之前叫做 Filter):输入工作子句将其应用于网格查询。 如果要在客户端使用排序(这意味着 DataGrip 不会重新运行查询,而会在当前页面对数据进行排序),应取消选中 Sort via ORDER BY:
也可以根据数字主键打开预定义排序的表。 此设置位于 Settings/Preferences | Database | Data Views。
我们重新设计了数据编辑器中的工具栏。 在自动事务模式下,Roll-back 和 Commit 按钮不再显示,新增 Revert changes 和 Find 两个按钮。
Settings/Preferences | Database | Data Views 中现在有一个选项可以始终转置结果(如果结果为单行)。
我们简化了导航,并取消了以下设置:
如果您从未更改过这些设置并默认选中了复选框,则 2021.1 的主要改动如下:Go to declaration (Ctrl/Cmd+B) 调用 SQL 中的一个对象,现在会转到 DDL,而不是数据库树。
我们还为 Select in database tree 操作引入了快捷键:Windows/Linux 为 Alt+Shift+B,macOS 为 Opt+Shift+B。
此更改的主要原因是使逻辑更直观:每个操作都应将您带到期望的位置。
现在,如果您把光标放在一个对象上:
我们明白有些习惯可能会因此而被破坏,因此提供了帮助您继续运用过去经验的方法。 提示:
database.legacy.navigate.to.code.from.tree
。 根据我们的数据,很少有用户使用此流程。 我们也推荐使用快捷键打开对象的 DDL。 如果这个新流程存在未覆盖的用例,请告知我们。
支持 Azure Active Directory 交互式身份验证。 启用后,浏览器将自动打开并允许您登录。
Redshift 2.x JDBC 驱动程序从这个版本开始可供 DataGrip 用户使用。 这里的主要增强是取消查询。
上一个版本增加了对 Google BigQuery 方言的支持。 我们在这个版本中对其进行了扩展,使数据库内省和代码生成可以正常运作,不再依赖于 JDBC 驱动程序的功能。
现在,如果您使用 CockroachDB 脚本或编写 SQL 查询该数据库,您的代码将正确高亮显示,并且能够在运行查询之前显示所有错误。 这是支持 CockroachDB 的第一步,全面的支持将在未来版本中实现。
我们重新设计了连接窗口,使其更加友好。
URL 字段现在可扩展,使长 URL 更易于处理。
复制和粘贴数据源的功能很早以前就已引入。 但从 2021.1 开始,您可以使用闻名世界的快捷键来复制、剪切和粘贴数据源:Ctrl/Cmd+C/V/X。
数据库资源管理器的默认布局已更改,非主要对象现在可以在专用节点下使用。 大多数时候,人们使用的是表格、视图和例程,而不会优先考虑用户、角色、表空间、外部数据包装器和其他类型的对象。 因此,这些二级对象现在隐藏在两个节点下:Server Objects 和 Database Objects。
要恢复以前的布局,只需在齿轮图标下的设置中选择 Group Database and Schemas。
如果使用的是 Oracle,有一个选项可以在树中显示或隐藏自动生成的对象,包括:
为 SQLite 内省了函数、模块和虚拟列。
从 2021.1 开始,不支持的数据库更易添加数据源。 我们现在为 AWS Athena、Informix、Presto、SAP HANA、Google Cloud Spanner 以及其他多种服务提供了 JDBC 驱动程序。 在数据库列表的 Other 部分可以找到这些数据库。
还有一些其他改进:
请注意,对这些数据库的支持仍然有限。 这主要依赖 JDBC 驱动程序的功能和 DataGrip 的 SQL 编辑器的 SQL:2016 方言支持。
我们为不受支持的数据库引入了一项新设置。 在 DataGrip 中使用这些数据库时,您需要使用 SQL:2016 或 Generic 方言。 Generic 与 SQL:2016 几乎相同,唯一的区别是:DataGrip 不会高亮显示任何其发现的错误。
要访问此设置,请转到 Settings/Preferences | Database | General | Split a script for execution in Generic and ANSI SQL dialects。 以下值可供选择:
以下是我们解决的一些问题:
报告不明确列名的检查变得更加智能,现在会考虑到通用表表达式中的所有列:
系统函数和过程在非限定使用时不再高亮显示为错误。 导航和补全现在也适用。
Thanks to the IntelliJ Platform, DataGrip now has support for the newline-delimited JSON Lines format used for working with structured data and logs. IDE 将识别 .jsonl、.jslines、.ldjson 和 .ndjson 文件类型。
新的版式设置可帮助您微调字体样式。 在 v2021.1 中,您可以在 Settings/Preferences | Editor | Fonts 中调整主字体和粗体字体的粗细。
复制尚未完全加载的二进制数据时,将显示以下通知:
如果您不希望数据被截断,请在 Settings/Preferences | Database | Data Views | Maximum number of bytes loaded per value 中增加值。
导出到 Excel 时,生成的文件将在单独的工作表中包含查询。
导入 CSV 文件时,现在可以在上下文菜单中选择澄清第一行是标题,如下所示:
现在可以通过拖放将文件夹附加到项目。
打开多个垂直拆分编辑器的标签页时,您可以双击并最大化各个标签页的编辑器窗口。 只需再次双击即可将窗口恢复到原始大小。
前段时间我们引入了缩短的标签页名称。 由于未能让所有人满意,因此新增设置给您更多选择。