1. DataGrip 2026.1 查询文件重构后,AI 代理接 PostgreSQL 卡在哪
DataGrip 2026.1 把查询文件和控制台拆成了两条并行工作流,查询文件现在默认落在当前项目目录,还会在数据库资源管理器的 Query Files 文件夹里按数据源归类。这个改动本身很舒服,但真正让不少人卡住的是 AI 代理这一块:DataGrip 2026.1 的 AI Chat 已经支持 Claude Agent 和 Codex,MCP 服务器也加了数据库特定能力,可一旦你同时开着 PostgreSQL 数据源、多个查询文件、还想让 AI 代理稳定读写,就会撞上三个现实问题。
第一,AI 代理的 Key 和通道是分散的。Claude Agent 一套、Codex 一套、MCP 工具又一套,每换一个入口就要重新填一次地址和密钥,查询文件里跑通的上下文,切到 AI Chat 就断了。第二,数据源模板虽然能存到 JetBrains 账户里复用 General 和 Advanced 设置,但它明确不包含数据库凭据,所以模板解决的是"连接参数复用",解决不了"AI 侧统一鉴权"。第三,PostgreSQL 18 支持进来之后,RETURNING 里的 OLD/NEW、WITHOUT OVERLAPS 这些新语法,AI 代理如果拿不到正确的方言和 schema 上下文,生成的 SQL 经常在查询文件里直接报解析错。
我试过的组合思路是:把 AI 代理的出口收敛到一个统一的 Key/API 通道上,让 DataGrip 里的 AI 代理、MCP 工具、以及你自己写的脚本都走同一个入口,再用数据源模板固定 PostgreSQL 的连接骨架。这样查询文件重构带来的"按数据源归类"才真正有意义——文件、数据源、AI 上下文三者能对上号。下面这套配置就是围绕这个目标来的,适合已经在用 DataGrip 2026.1、手里有 PostgreSQL 数据源、想让 AI 代理别再到处填 Key 的人。
2. 前置准备:TaoToken 统一 Key 与 DataGrip 侧要动的东西
TaoToken 在这里扮演的角色是"统一出口":你只维护一份 Key,AI 代理、MCP、脚本都指向同一个 API 地址,换模型或换代理时不用改 DataGrip 里一堆地方。官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 基址是 https://taotoken.net/api ,注意 API 这条不带 UTM 参数,配置里要写干净。
动手前先确认三件事。一是 DataGrip 版本确实是 2026.1,查询文件的显示设置路径在 Settings → Database → Query Execution → Query Files,能在这里看到选项就说明版本对了。二是 PostgreSQL 数据源已经能连上,建议先在 Data Sources and Drivers 里把连接测通,再去做模板。三是准备好 TaoToken 的 API Key,去控制台生成,地址是 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,Key 列表页在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
DataGrip 侧要动的地方分两层。第一层是数据源模板:在 Data Sources and Drivers 对话框切到 Data Source Templates 标签页,把 PostgreSQL 的 General 和 Advanced 设置存成模板,凭据不进去,这样同一账户下其他 IDE 也能复用。第二层是 AI 代理的接入配置,DataGrip 2026.1 的 AI Chat 里选 Claude Agent 或 Codex 时,需要给它一个可用的 API 通道,这里就填 TaoToken 的地址和 Key。如果你还要用 MCP 那套数据库特定功能,MCP 服务端同样指向这个统一入口,避免出现"AI Chat 能跑、MCP 跑不通"的割裂。
注意:数据源模板只存 General 和 Advanced,不存凭据,这是设计如此。别指望模板帮你带密码,凭据要么手填,要么走环境变量,要么交给统一 Key 通道去管 AI 侧那部分。
3. 可复制配置:settings.json 骨架与 TaoToken 接入
DataGrip 本身是 IDE,AI 代理和 MCP 的配置更多落在项目级或工具级的配置文件里。下面这份 settings.json 骨架是给 AI 代理/MCP 侧用的,放在你项目根目录或工具约定的配置位置,字段按需删改。核心是把 base_url 指向 TaoToken,把 api_key 用环境变量注入,别硬编码。
{ "ai_proxy": { "provider": "taotoken", "base_url": "https://taotoken.net/api", "api_key_env": "TAOTOKEN_API_KEY", "default_model": "claude-sonnet", "timeout_ms": 60000, "retry": { "max_attempts": 3, "backoff_ms": 800 } }, "mcp": { "enabled": true, "server": { "transport": "stdio", "command": "your-mcp-server", "env": { "TAOTOKEN_BASE_URL": "https://taotoken.net/api", "TAOTOKEN_API_KEY": "${TAOTOKEN_API_KEY}" } }, "database": { "dialect": "postgresql", "require_consent_level": 4 } }, "datagrip": { "query_files": { "attach_datasource_on_ai_create": true, "default_dialect": "postgresql" }, "datasource_template": { "name": "pg-template", "host": "127.0.0.1", "port": 5432, "database": "appdb", "user": "appuser", "sslmode": "prefer" } } }几个字段说明一下。base_url 固定写 https://taotoken.net/api ,不要带查询参数。api_key_env 指向环境变量名,实际值在 shell 里 export,这样配置文件可以进版本库而不泄露密钥。mcp.database.require_consent_level 对应 DataGrip 2026.1 里 MCP 访问数据和架构的同意级别,默认四级,别为了省事调低。datagrip.query_files.attach_datasource_on_ai_create 对应"从 AI 聊天创建文件时自动附加数据源"这个新行为,设成 true 后,你在 AI Chat 里提到某个数据源,新建的查询文件会自动挂上它并设好 PostgreSQL 方言。
环境变量这样设,Linux/macOS 用:
export TAOTOKEN_API_KEY="sk-你的Key" export TAOTOKEN_BASE_URL="https://taotoken.net/api"Windows PowerShell 用:
$env:TAOTOKEN_API_KEY = "sk-你的Key" $env:TAOTOKEN_BASE_URL = "https://taotoken.net/api"数据源模板那边,在 DataGrip 里打开 Data Sources and Drivers,切到 Data Source Templates,新建一个 PostgreSQL 模板,General 里填 host/port/database,Advanced 里按需加参数,比如ApplicationName=datagrip-ai。存好之后,以后新建数据源直接从模板创建,凭据单独填。这样模板管连接骨架,TaoToken 管 AI 鉴权,两边不打架。
4. 验证请求:从 AI 代理调用到查询文件跑通
配置写完要验证,分三步走,每步都有明确的成功标志。
第一步,验证 TaoToken 通道本身通不通。用 curl 打一下模型对话接口,确认 Key 和地址没问题:
curl -s https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet", "messages": [{"role": "user", "content": "ping"}] }'返回里带 choices 字段就说明通道通了。如果返回 401,检查 Key 有没有 export 成功;返回 404,检查 base_url 是不是多写了斜杠或路径。
第二步,在 DataGrip 2026.1 的 AI Chat 里选 Claude Agent 或 Codex,把上面这份 settings.json 的 ai_proxy 段对应的地址和 Key 填进去。然后问一个跟 PostgreSQL 相关的问题,比如"给 appdb 的 orders 表写一个带 RETURNING OLD/NEW 的更新语句"。成功标志有两个:AI 回复里给出的 SQL 方言是 PostgreSQL,且你点"从代码片段创建文件"时,新查询文件自动附加了 appdb 数据源、方言自动设成 PostgreSQL。这正是 2026.1 里"从 AI 聊天创建文件时自动附加数据源"的行为,如果没生效,回去检查 attach_datasource_on_ai_create 和你在提问里有没有提到数据源名。
第三步,在新建的查询文件里跑一条真实 SQL,验证端到端。PostgreSQL 18 支持 RETURNING 里的 OLD/NEW,可以这样测:
UPDATE orders SET status = 'shipped' WHERE id = 1001 RETURNING OLD.status AS old_status, NEW.status AS new_status;在查询文件里选中这段,右键选 Execute Selection as Single Statement——这是 2026.1 里"更轻松的代码块执行"的用法,即使解析器没完全认全也能按单语句执行。返回 old_status 和 new_status 两列就说明查询文件、数据源、方言、AI 上下文全对上了。如果还想验证 MCP 那条路,让 AI 代理通过 MCP 执行一次查询,注意它会按四级同意弹确认,点同意后能拿到结果就说明 MCP 的数据库特定功能也通了。
5. 本篇常见错排查:Key、方言、模板、同意级别
配这套东西踩的坑比较集中,列几个高频的。
报 401 或 invalid api key,九成是环境变量没生效。DataGrip 从桌面图标启动时,可能读不到你在终端里 export 的变量。解决办法是在启动 DataGrip 的同一个 shell 里 export,或者把变量写进系统级环境配置后重启 IDE。别把 Key 直接写进 settings.json 提交到仓库。
AI 生成的 SQL 方言不对,比如把 PostgreSQL 的 RETURNING 写成了别的库的语法。检查两点:数据源模板里 dialect 是不是 postgresql,以及 AI Chat 提问时有没有明确说"PostgreSQL 18"。2026.1 的自动附加数据源依赖你提供数据库上下文,你不提,它就可能按默认方言来。
数据源模板创建出来的连接缺参数。记住模板只存 General 和 Advanced,凭据、以及某些驱动级设置不在里面。从模板建完数据源后,手动补 user/password,再测连接。如果模板里 Advanced 加了参数但没生效,检查是不是写在了 Driver 级别而不是 Data Source 级别。
MCP 访问被拦。2026.1 的 MCP 数据库功能默认要四级用户同意,这是安全设计。如果你在自动化脚本里调 MCP,要么在交互环境里手动同意,要么按官方文档配置受信任场景,别想着绕过同意级别。另外 MCP 服务端的 env 里也要带 TAOTOKEN_API_KEY,否则它连不上统一通道。
查询文件没出现在 Query Files 文件夹下。2026.1 里只有附加到数据源的查询文件才会归到数据库资源管理器的 Query Files 下。如果你新建文件时没关联数据源,它就是个普通文件。用 AI Chat 创建时确保 attach_datasource_on_ai_create 为 true,或者手动在文件上附加数据源。
6. 后续怎么走:按场景分流
这套配置跑通之后,日常用法可以按场景分。只是偶尔问模型、验证 SQL 写法,用模型对话入口就够了,地址在 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,配合 DataGrip 的 AI Chat 做轻量验证。如果是长期在 DataGrip 里做编码、让 AI 代理持续参与查询文件重构和 schema 变更,建议走 Coding Plan,入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,这样 Key 和额度管理更省心。接入过程中遇到鉴权或通道问题,先看接入文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,Key 的生成和轮换在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。Claude Code 相关的代理配置参考 https://taotoken.net/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
最后留一个实用习惯:每次改完 settings.json 或数据源模板,先用第 4 节那条 curl 验通道,再在查询文件里跑一条带 RETURNING 的语句验端到端。两步都过,再去动 AI 代理的复杂任务。这样出问题时你能立刻分清是通道挂了、方言错了、还是模板没生效,不用在一堆配置里瞎猜。