
Bisheng 数据库完全上手指南4步吃透 LLM 应用数据层的设计与演进【免费下载链接】bishengBISHENG is an open LLM devops platform for next generation Enterprise AI applications. Powerful and comprehensive features include: GenAI workflow, RAG, Agent, Unified model management, Evaluation, SFT, Dataset Management, Enterprise-level System Management, Observability and more.项目地址: https://gitcode.com/GitHub_Trending/bi/bishengBisheng毕昇是一款新一代开源 LLM DevOps 平台GenAI 工作流、RAG、Agent 等能力背后都压着一套精心设计的数据层。很多人关心毕昇数据模型到底怎么划分Bisheng MySQL 配置在哪里生效版本升级时数据迁移怎么做本文按存什么、存哪里、怎么启动、怎么演进四个问题逐一拆解。先存什么毕昇数据模型全景毕昇数据库的设计思路是状态显式建模行为柔性落库。核心实体分为五大类各自有独立模型文件实体所在文件职责用户 Usersrc/backend/bisheng/user/domain/models/user.py终端用户与管理员账户角色 Rolesrc/backend/bisheng/database/models/role.pyRBAC 权限体系流程 Flow / 版本 FlowVersionsrc/backend/bisheng/database/models/flow.py工作流定义及其版本快照会话 Session / 消息 Messagesrc/backend/bisheng/database/models/session.py对话上下文与消息记录灵思任务 LinsightExecuteTasksrc/backend/bisheng/linsight/domain/models/linsight_execute_task.pyAI 任务的执行状态与结果这些实体并非孤立存在任务模型通过外键session_version_id挂到会话版本再用parent_task_id、previous_task_id、next_task_id串联父子任务与前后步骤天然形成一张可执行的 DAG。三个约定值得直接借鉴主键统一取 32 位十六进制 UUID由 src/backend/bisheng/database/base.py 中的uuid_hex()生成状态字段全部用 Python 枚举定义并映射为数据库枚举非法状态在写入时就会被拒绝任务数据、执行历史等柔性内容交给 JSON 列避免为字段小改频繁动表结构。再存哪里Bisheng MySQL 配置的 5 个关键项连接 MySQL 是毕昇数据层的地基配置文件在 docker/mysql/conf/my.cnf核心内容不长[mysqld] max_connections1000 character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci init_connectSET collation_connection utf8mb4_unicode_ci, NAMES utf8mb4 sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION配置项作用character-set-server/collation-server服务器级 utf8mb4 统一排序规则emoji 和多语言文本无损存储中文排序可预期init_connect每个新连接强制切换到 utf8mb4杜绝客户端与服务端字符集不一致导致的乱码sql_mode严格模式拒绝零值日期、除零和非法值脏数据在写入时就被拦下而不是查询时才暴露max_connections连接数上限 1000为多模型并发推理这类高连接数场景预留余量接着怎么启动一键且幂等的初始化机制毕昇数据库的初始化由 src/backend/bisheng/common/init_data.py 中的init_default_data()承担整个流程被设计成可以安全地重复执行分为四个环节加锁先用 Redis 的asetNx(init_default_data)抢全局标记多实例并发启动时只放一个进初始化逻辑建表create_db_and_tables()按模型自动创建全部表结构无需手工跑 DDL播种每类数据写入前先查询目标表是否为空——系统管理员/普通用户角色、默认租户、根部门、管理员账户、预置模板与工具只有空表才插入预置数据从 src/backend/bisheng/database/data/ 下的 JSON 文件加载分段提交各环节独立 commit中途失败不会回滚已完成的步骤下次启动自动续写。效果很直接容器重启、重复部署多少次Bisheng 数据库里都不会长出重复角色或重复管理员。最后怎么演进版本化的数据迁移毕昇把改表从临时性的 DBA 操作变成了受版本控制的脚本。src/backend/bisheng/core/database/alembic/versions/ 目录已沉淀 58 个迁移脚本命名遵循版本号 特性号的约定如v2_5_0_f001_multi_tenant.py一眼能看出改动来源。四个习惯值得照搬增量优先演进靠加列、加表、改字段完成不做全量删库重建一特性一脚本每个脚本职责单一出问题容易定位与回退回填与 DDL 解耦历史数据修复走 src/backend/scripts/ 下的独立 backfill 脚本不混在迁移链路里先备份、再事务迁移前导出快照迁移本身在事务内执行失败可整体还原。版本升级后一条命令即可让表结构追平代码alembic upgrade head延伸阅读src/backend/bisheng/database/核心模型定义与异步/同步会话基础工具src/backend/bisheng/core/database/alembic/迁移脚本全集src/backend/bisheng/linsight/domain/models/灵思任务模型源码docs/architecture/07-data-models.md架构文档中的数据模型说明【免费下载链接】bishengBISHENG is an open LLM devops platform for next generation Enterprise AI applications. Powerful and comprehensive features include: GenAI workflow, RAG, Agent, Unified model management, Evaluation, SFT, Dataset Management, Enterprise-level System Management, Observability and more.项目地址: https://gitcode.com/GitHub_Trending/bi/bisheng创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考