尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Bisheng数据库设计10分钟上手:从MySQL配置到数据迁移的3步完整指南

Bisheng数据库设计10分钟上手:从MySQL配置到数据迁移的3步完整指南 Bisheng数据库设计10分钟上手从MySQL配置到数据迁移的3步完整指南【免费下载链接】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平台做部署是不是也遇到过首次启动就报 Data truncated 错误或者升级后新增的任务状态枚举值根本写不进去Bisheng 是一个开源的 LLM DevOps 平台它数据库设计的取舍直接决定了上层 AI 能力的稳定性。学完本文你可以看懂官方 MySQL 配置的关键参数与背后的原因理清用户、角色、会话、任务、租户五类实体之间的关系掌握初始化与数据迁移的不翻车操作方案总览Bisheng核心数据实体的关系图谱在动手之前先把整个数据层长什么样看清楚。Bisheng 的表全部用 SQLModel把数据库操作封装成 Python 对象的工具定义核心实体之间的关系用一张表就能说清实体负责什么和别的表怎么连用户 / 角色登录账号与 RBAC 权限控制用户-角色关联表负责多对多绑定流程 / 流程版本AI 工作流定义与版本管理版本表外键指向流程表新旧版本并存会话 / 任务AI 交互执行过程任务表外键指向会话版本表任务可用 parent_task_id 自嵌套成树租户多租户隔离各业务表都带 tenant_id 列看懂表结构里的租户隔离约定每张核心业务表都有 tenant_id 列查询路径上还注册了租户过滤器——在 ORM 层自动为查询追加当前租户条件。这个约定做数据迁移时会反复用到先记住它。所有模型源码集中在 src/backend/bisheng/database/models/对照着看更直观。上手实操3步把数据库跑起来关系清楚后按真实部署顺序走完这三步。第一步配置MySQL环境的关键参数官方配置在 docker/mysql/conf/my.cnf核心就几行[mysqld] max_connections1000 character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci另有 init_connect 强制每个连接都用 utf8mb4保证中文、emoji 不乱码sql_mode 采用严格模式从源头拒绝非法日期和零值。为什么这么做字符集和严格度一旦配错问题不在部署时爆发而在业务写入时才暴露排查成本极高。第二步完成建表与默认数据初始化首次启动不需要你手动跑建表脚本启动逻辑大致是if await redis_client.asetNx(init_default_data, 1): await db_manager.create_db_and_tables() # 只补缺失的表 # …… 写入默认角色、默认租户、管理员账号建表过程是幂等的重复执行也安全随后初始化脚本会补上系统管理员/普通用户两个角色、默认租户、管理员账号以及预设模板和工具。为什么这么设计Redis 那把分布式锁保证多实例同时启动时只有一份实例真正写库避免了生产环境常见的重复初始化。进阶技巧与避坑枚举扩展和数据迁移的常见误区部署跑通之后日常开发和升级里还有几个暗坑下面两个最容易踩。规避枚举值扩展的经典坑⚠️ 给任务状态加新值比如新增“等待用户输入”时别用 MySQL 原生 ENUM——允许值集合在建表时就固化了升级后写入新值会直接报 Data truncated。Bisheng 的做法是存普通 VARCHAR由应用层用 Python 枚举约束Column(SQLEnum(ExecuteTaskStatusEnum, native_enumFalse, length50, create_constraintFalse))这样加状态只改代码不动表结构升级零风险。执行数据迁移前先验证三件事 真要动表结构或补数据时守住三条底线用 ALTER 做增量迁移避免全量删表重建一次性数据修复可参考仓库 scripts/ 目录下的 backfill 脚本写法每步迁移包在事务里失败整体回滚跑之前备份受影响表统计核对时别忘记租户过滤器的存在直接数表和接口看到的行数可能对不上想深入可以看 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),仅供参考
返回列表