Dify 数据库操作指南与用户反馈表解读
bash运行。
·
一、数据库基础操作(Docker 环境专属)
(一)进入 PostgreSQL 容器
bash
运行
# 1. 查看容器ID(筛选postgres容器)
docker ps | grep postgres
# 2. 进入容器终端(替换容器ID为实际值)
docker exec -it [容器ID] /bin/bash
(二)连接 Dify 数据库
bash
运行
# 连接命令(默认用户postgres,数据库名dify)
psql -U postgres -d dify
# 输入密码(dify默认密码:difyai123456),如果想修改可以去docker-compose.yaml中修改
(三)常用核心命令(速查版)
| 操作目的 | 命令示例 | 说明 |
|---|---|---|
| 查看所有数据库 | \l | 核心关注 dify(主库)和 dify_plugin(插件库) |
| 切换数据库 | \c dify | 切换到业务核心数据库 |
| 查看所有表 | \d | 共 89 张表,覆盖全功能模块 |
| 查看表结构 | \d [表名] | 示例:\d messages(查看消息表字段) |
| 查询数据 | SELECT * FROM [表名] LIMIT 10; | 限制条数,避免数据刷屏 |
| 临时备份表数据 | CREATE TEMP TABLE [备份表名] AS SELECT * FROM [原表名]; | 示例:CREATE TEMP TABLE messages_backup AS SELECT * FROM messages; |
| 退出数据库 | \q | 返回容器终端 |
| 退出容器 | exit | 回到宿主机命令行 |
二、核心业务表解读(开发 / 运维重点关注)
1. message_feedbacks 表:消息反馈表
表用途
存储用户对 AI 回复的反馈(点赞 / 点踩 / 文字评价),用于模型优化。
核心字段说明
| 字段名 | 字段类型 | 含义说明 | 数据示例 |
|---|---|---|---|
| id | uuid | 反馈唯一标识 | a1b2c3d4-7890-efgh-ijkl-mnopqrstuv |
| message_id | uuid | 关联消息 ID(对应 messages 表 id) | 3501af07-3301-4aeb-9c2b-89c03860a04b |
| rating | integer | 反馈评级(1 = 点赞,2 = 点踩) | 1 |
| content | text | 反馈文字内容(可选) | 回复精准,解决了技术咨询问题 |
| from_account_id | uuid | 反馈者(管理员 ID) | 9d758d68-bd32-4824-a444-d31aa4430159 |
| from_end_user_id | uuid | 反馈者(普通用户 ID) | 5d6c4002-fd7f-49a4-b501-abc71fd75f81 |
| created_at | timestamp | 反馈提交时间 | 2025-11-26 10:30:00 |
关联逻辑
通过 message_id 与 messages 表一对一关联。
2. messages 表:消息详情表(对话核心数据载体)
表用途
存储单条消息记录(用户提问 / AI 回复),含状态、来源、关联关系等。
核心字段说明
| 字段名 | 示例值 | 含义说明 |
|---|---|---|
| id | 3501af07-3301-4aeb-9c2b-89c03860a04b | 消息唯一标识(UUID) |
| app_id | 482a9ce2-cdc3-451c-8cbb-875b4b15950d | 关联 AI 应用 ID |
| conversation_id | 75f7ce04-b0c4-48cf-b2c0-d417240aea71 | 关联对话 ID(对应 conversations 表) |
| query | "分析 PLC 程序"、"iPhone 13 Pro Max 参数" | 用户提问内容(多语言支持) |
| answer | 长文本(含语法说明)或空 | AI 回复内容(空 = 回复失败) |
| status | normal/error | 消息状态(正常 / 失败) |
| error | "Model credentials not initialized" | 失败原因(模型配置 / 插件问题) |
| from_source | console/api | 消息来源(管理员调试 / API 调用) |
| parent_message_id | 8713e7e3-a6b9-4b7a-90b6-6f5898962e8f | 父消息 ID(多轮对话关联) |
| created_at | 2025-09-21 05:19:44 | 消息创建时间 |
关键数据洞察
- 失败原因:集中在「模型凭证未初始化」「插件守护进程请求失败」(需检查模型配置);
- 使用场景:技术咨询(PLC 程序)、产品查询(手机参数),以管理员调试为主;
- 功能支持:多轮对话(通过
parent_message_id关联)。
3. conversations 表:对话会话表
表用途
存储完整对话流程的整体信息,一条记录对应一个独立对话,关联多条消息。
核心字段说明
| 字段名 | 示例值 | 含义说明 |
|---|---|---|
| id | 75f7ce04-b0c4-48cf-b2c0-d417240aea71 | 对话唯一标识(UUID) |
| app_id | 482a9ce2-cdc3-451c-8cbb-875b4b15950d | 关联 AI 应用 ID(单应用部署) |
| name | "你是谁"、"test"、"PLC 程序分析" | 对话名称(取自首条提问 / 自定义) |
| mode | advanced-chat | 对话模式(高级对话,支持知识库检索) |
| override_model_configs | {"retriever_resource":{"enabled":true}} | 模型配置覆盖(启用知识库,禁用文件 / 语音) |
| from_source | console/api | 对话来源(调试 / API 调用) |
| created_at | 2025-09-21 05:19:44 | 对话创建时间(首次提问时间) |
| dialogue_count | 3 | 对话包含消息条数 |
| is_deleted | f(false) | 是否删除(f = 未删,t = 已删) |
关键数据洞察
- 部署阶段:对话名称多为测试内容,处于开发调试阶段,未对外开放;
- 功能配置:启用知识库检索,禁用文件上传、语音功能;
- 关联核心:
conversation_id是与messages表的关联关键字(一对多关系)。
三、核心表关联关系图
plaintext
conversations(对话表)
└─ id(对话ID) → 一对多 → messages(消息表).conversation_id
messages(消息表)
└─ id(消息ID) → 一对一 → message_feedbacks(反馈表).message_id
此文档用docker访问了dify的数据库,也可以通过DBeaver进行图像式的访问
欢迎评论私信讨论Dify相关的问题,需要源码私我
更多推荐
所有评论(0)