概述
Qoder 支持将 JetBrains IDE 中的数据库连接作为 AI 上下文。通过 @database 功能,AI 可以基于真实的数据库表结构生成 SQL、进行架构分析或生成相关代码。前置条件
在使用数据库功能前,需要先在 JetBrains IDE 中配置数据库连接:- 打开数据库工具窗口
- 创建数据库连接
- 测试连接是否正常
使用方式
在 Ask/Agent 模式中引用数据库
添加数据库到上下文:- 在 Qoder 输入框中点击「Add Context」
- 选择 @database
- 选择目标数据库 Schema
- 添加到上下文中的 SQL 文件是基于数据库的 schema 生成的
- 如果一个数据库有多个 schema,会生成多个对应的 schema SQL 文件
- 生成查询某表的 SQL
- 分析表结构设计
- 基于表结构生成代码
在 Query Console 中生成 SQL
- 打开数据库的 Query Console
- 按
Ctrl + Shift + I - 输入自然语言描述
- 回车生成 SQL
使用斜杠指令
可以创建自定义指令快速完成常见操作。 创建指令:- 点击 Qoder 窗口的个人头像
- 选择「个人设置」→「指令」
- 创建新指令
/ 加指令名称即可调用,例如输入 /sql 调用 SQL 生成指令。
常用指令示例:
生成 SQL(/sql):
在 DataGrip 中使用
添加 Qoder 到工具栏:- 点击顶部「…」图标
- 选择「Qoder」
- 点击大头针固定
- 在 Query Console 中点击 Qoder 按钮
- 或按快捷键
Ctrl + Shift + I
实用场景
数据库设计
Agent 模式(适用于复杂场景)
适用于:- 需要参考设计文档
- 需要生成符合特定规范的 SQL
- 需要生成特定格式的迁移脚本(如 Flyway)
- 在 Agent 模式添加相关文档到上下文
- 以自然语言描述需求
- 生成 SQL 文件
- 打开 SQL 文件并执行
Query Console 模式(适用于简单场景)
适用于:- 简单的数据库结构设计
- 表结构调整
- 微小改动
- 打开数据库 Schema 的 Query Console
- 输入需求
- 调整并执行生成的 SQL
数据库设计最佳实践
提供表结构示例: 如果有标准的表结构样例,可以提供给 Qoder 作为参考:- 使用清晰描述性的名称,表名和字段名能直接表达含义(如 user、order_item),建议采用单数形式
- 保持命名一致性,统一使用下划线命名法(snake_case)或驼峰命名法
- 避免缩写,用 customer_address 而非 cust_addr
- 布尔字段加前缀,如 is_active、has_paid
- 主键明确,每个表都有清晰的主键,命名为 id 或 table_name_id
- 外键关系清晰,外键命名如 user_id、order_id,明确指向关联表
- 添加时间戳,包含 created_at、updated_at 字段
- 添加表注释,说明表的用途
- 添加字段注释,解释字段含义、取值范围、单位等
- 枚举值说明,如状态字段,注释说明每个值的含义
- 使用合适的数据类型,避免全用 VARCHAR
- 设置合理的长度限制
- NULL 值策略明确,哪些字段允许 NULL,哪些必填
- 默认值明确,如果有明确的默认值,需要指出
标注遗留数据库
对于命名不规范的遗留数据库,可以使用 JSON 文件进行标注,让 AI 更好地理解数据库结构。 示例场景: 假设有以下遗留数据库表:db-metadata.json 文件进行标注:
注意事项
数据库表非常多
如果数据库 schema 非常大(表非常多,如 ERP、CRM 等场景),可能导致超出 Agent 的上下文限制。 解决方案:- 将数据库的 schema 导出为多个 SQL 文件
- 通过添加文件的方式分批添加到上下文中
- 只添加与当前任务相关的表
数据库方言(Dialect)
Qoder 会自动将数据库 dialect 以注释的方式添加到数据库 schema 中,无需手动声明数据库类型。 如果需要手动添加 SQL 文件到上下文:- 可以在 SQL 文件中添加注释标明数据库类型,例如:
-- dialect: mysql - 也可以在全局 AGENTS.md 中进行数据库类型声明