一、数据库基础操作(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相关的问题,需要源码私我

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐