DataGrip 2019.2 最新变化

Services 工具窗口

我们的所有 IDE 现在都有一个名为 Services 的新工具窗口。 您可以在 DataGrip 中观察和管理所有连接。

每个连接在相应数据源下都有自己的节点。 如果图标上的小绿灯亮起,则表示连接在线。 您可以使用上下文菜单轻松关闭连接。

以节点形式查看所有服务类型,或者更改视图,以标签页形式查看。 使用工具栏中的 Show in New Tab 操作,或者将所需节点拖放到 Services 工具窗口的标题栏上。

Services 视图中,查询结果现在附加到其连接下的特定控制台。

重要提示! Services 工具窗口的默认快捷键是 Alt+8.

隐藏树

隐藏树

如果不想看到 Services 树(即,您想返回以前的方式),点击齿轮图标即可隐藏此树。

查询实时计时器

Services 工具窗口还为您提供了另一个呼声很高的功能: 查询实时计时器。 对于运行查询的任何连接,请在其右侧查看花费的时间。

Docker

Docker

如果您使用 Docker 插件,相应的服务也将出现在此工具窗口中。

全文检索

现在,即使您不知道数据的确切位置,也可以搜索数据。 选择要搜索的数据源或数据源组甚至单独的表,并从上下文菜单 调用 Full-text search 即可。 当然,它也有快捷键:Ctrl+Alt+Shift+F

您将看到输入字符串的对话框。 您将看到要搜索的数据源列表,并能设置一些搜索选项。

此外,您还可以查看 DataGrip 将运行哪些特定语句来执行数据搜索。

运行搜索后,您将看到可以打开的结果。

点击结果可以打开数据编辑器。 将预定义筛选器,仅为您提供找到数据的字符串。 如果由于列过多而无法定位数据,请在数据编辑器中 使用文本搜索:Ctrl+F

在某些数据库中,您可以选择仅搜索已编制索引的列。 要使用该模式,在 Search in 下拉菜单中, 选择 Only columns with full-text search indexes (仅限有全文搜索索引的列)

  • PostgreSQL 中,查询为:where col @@ plainto_tsquery('text')
  • MySQLMariaDB 中,查询为:where match(col) against ('text' in natural language mode)
  • Oracle 中,使用以下索引(如果存在):context、ctxrule、ctxcat
  • SQL Server 中,如果列有全文索引,DataGrip 生成的查询带有 WHERE CONTAINS(col, N'text')
  • SQLite 中,DataGrip 通过 where col MATCH ‘text’ 生成查询。

如果选择 All columns 模式,搜索将查看不支持 LIKE 操作符的列,例如,JSON 类型的列。 这些列中的值预先转换为字符串。

Cassandra 中,DataGrip 会为一个表创建多个查询,因为该数据库不支持 OR 条件。

数据编辑器

很容易修改页面大小

很容易修改页面大小

现在,可以从结果集的工具栏定义要从数据库中检索的行数。

 可以命名结果标签页

可以命名结果标签页

另一个超酷的结果改进:标签页命名! 只需在查询前使用注释即可。

 可以命名结果标签页

 

如果您只想某些注释成为标签页名称,请使用设置中的 Treat text as title after 字段指定前缀词。 然后,只有在该前缀词后面的单词才用作标题。

数据库树形目录

 快速备份表

快速备份表

之前可以通过拖放来复制表,但这种方式在复制到同一架构时不起作用。 实际上,如果您需要在任何关键数据操作之前创建表的快速备份,这可能非常方便。 因此,我们现在实现了在同一架构内进行拖放!

快速创建组

快速创建组

现在,拖放也适用于在数据库资源管理器中创建组。
要新建组,只需将一个数据源拖到另一个数据源上。
要将数据源放入现有组,将其拖放到那里即可。

有效连接

有效连接

从 2019.2 版开始,小绿灯表示是否存在到数据源的有效连接。

Force Refresh

Force Refresh

提供一个可以用于数据源或架构的新操作,名为 Force Refresh。 它可以清除 DataGrip 缓存的数据源信息,并从头刷新。

在搜索和导航中按数据源筛选

当您在 GoTo 弹出窗口中查找对象时,列表中有时存在很多类似对象。 有许多镜像,比如生产、分段、测试等时, 经常发生这种情况。

在 DataGrip 2019.2 中,您可以选择搜索位置:在一个特定的数据源还是一组数据源中。

Find In Path 中也是如此,如果在其他对象的 DDL 中搜索源代码时,这特别有用。

编码辅助

很容易修改页面大小

来自系统目录的对象

几乎每个数据库都有一个系统目录 - 关系数据库管理系统存储架构元数据的位置,比如有关表和列的信息、 内置函数等。

提供编码辅助需要来自这些目录的对象。 在代码补全中使用它们非常不错,而且使用它们的代码不应该是红色的。

以前,在编码辅助中使用系统目录的唯一方法是将它们添加到数据库资源管理器中。 DataGrip 实际上从数据库中检索了有关它们的信息(顺便说一句,总是相同的!),这需要时间。 此外,它们在数据库资源管理器中可见,这并不总是必要的。

这种架构在架构选择器中有一个闪电图标。 现在,如果您不检查它们,DataGrip 不会自省并展示它们,但会在编码辅助中使用有关其对象的信息。 为了实现这点,DataGrip 使用有关每个数据库的系统目录的内部数据。

多种数据库的一些系统目录示例:

  • PostgreSQLpg_catalog、information_schema
  • SQL ServerINFORMATION_SCHEMA
  • OracleSYS、SYSTEM
  • MySQLinformation_schema
  • DB2SYSCAT、SYSFUN、SYSIBM、SYSIBMADM、SYSPROC、SYSPUBLIC、SYSSTAT、SYSTOOLS
很容易修改页面大小

意图操作和快速修复

首先,我们将快速修复集成到检查工具提示中。 如果 DataGrip 知道如何修复问题,您只需将鼠标悬停在警告上即可了解相关信息。 要修复问题,只需点击工具提示左下角的链接,或按 Alt+Shift+Enter

Alt+Enter 仍然可以获取所有可能的快速修复列表。

我们还引入了几项新检查。

不必要的 CASE 用法

当您使用 CASE 结构时,DataGrip 会分析它们是否可以转换成更易读的代码。

转换成 IF

 

转换成 COALESCE

GROUP BY 转换成 DISTINCT

GROUP BY 转换成 DISTINCT

我们还增加了一个意图操作:如果 SELECT 子句的所有列都呈现在 GROUP BY 子句中,您现在可以将 GROUP BY 转换成 DISTINCT

可能的截断字符串

可能的截断字符串

在为变量赋值时,IDE 将检测字符串的长度,并警告您该字符串是否会被截断。

SQL 编辑器

控制 Move Caret to Next Word 行为的新选项

控制 Move Caret to Next Word 行为的新选项

Move Caret to Next Word 操作的默认行为已经改变:DataGrip 现在会将脱字符号移动到当前单词的末尾。

要更改脱字符号移动操作的行为,请转到 Preferences/Settings | Editor | General

要执行此操作,大家通常可以在 WindowsLinux 上按 Ctrl+Arrows,在 Mac 上按 Opt+Arrows。 它在不同操作系统上有不同的默认行为。 在 Datagrip 中,我们将类似 Windows 的行为改为类似 Mac 的行为。

以前是这样的:

现在是这样的:

GROUP BY 转换成 DISTINCT

Select current statement

现在提供一项新操作:Select current statement。 您可以从 Find Action (Ctrl+Shift+A) 调用,或者为它指定一个快捷键。

可能的截断字符串

折叠大数字

如果要提高大数字的可读性,可以使用快捷键 Ctrl+减号将其折叠。

其他更改

  • DataGrip 2019.2 默认运行在 JetBrains Runtime 11 下,这是 OpenJDK 11 的未认证分支。
  • 如果您要在树形视图中查看表注释,请转到 View | Appearance,并切换 Descriptions in Tree Views 选项。
  • [Cassandra] 您现在可以编辑这些类型的列:set、list、map、tuple、udt、inet、uuid 和 timeuuid
  • 代码补全现已包含新的组合项目:IS NULLIS NOT NULL
  • Jump outside closing bracket/quote with Tab 选项默认处于启用状态。
  • Surround a selection with a quote or brace 选项默认处于启用状态。
  • Introduce alias 已添加到重构菜单中。
  • DataGrip 支持 PostgreSQL 12DBE-8384
  • 只读模式下工作时曾有些不一致:如果要从只读模式运行 update 查询,IDE 仅会关闭 IDE 级模式,而不关闭 JDBC 模式:DBE-8145。 现在,这两个我们都关闭了,以便在您真的需要时可以运行查询。