解决 DataGrip Query Console 不管选择哪个 schema,始终在 master 下执行

DataGrip 是我目前用过的最好的数据库 IDE。在 ARM Mac 上通过 Docker 安装好 SQL Server 后,我立马尝试在 DataGrip 中访问,由于新系统,所以安装的是最新版本的 DataGrip,本以为新版本应该体验更好,但却发现了一个标题所说的致命问题。

该问题会导致我执行的 SQL 始终提示 Invalid object name 'table_name',这个提示很容易理解,因为在 master 下该表是不存在的。

问题复现步骤

  1. 选中数据库。

  2. 右键选择“Query Console”。

  3. 编辑界面对应的当前 schema 显示正常,为当前数据库名称。

  4. 编写查询语句,智能提示显示正常,但是执行报错,Output 输出如下:

    1
    2
    3
    4
    [2022-04-21 21:08:44] Connected
    master> select *
    from OrderInfo
    [2022-04-21 21:08:44] [S0002][208] Line 1: Invalid object name 'OrderInfo'.

    奇怪的是 schema 怎么显示的 master,而不是当前数据库。

  5. 并且点击 Switch current schema,显示 nothing to show

解决

感觉这是 DataGrip 的问题。因为我当时的使用的版本是 2022.1.1,发布日期是 2022-4-14,至今 7 天。

于是在另一台电脑上用另一个版本 2021.3.1,发布日期是 2021-11-24,测试没有问题。果然问题就是最新版本的 DataGrip 的 bug 了。

schema 列表像下图这样能显示就正常了。

解决 DataGrip Query Console 不管选择哪个 schema,始终在 master 下执行

https://ganzhixiong.com/p/e7ed9ac3/

Author

干志雄

Posted on

2022-04-21

Updated on

2022-04-21

Licensed under

Comments