VTJ.PRO 在线应用开发平台的数据库与基础设施

数据库与基础设施

VTJ.PRO平台利用基于MySQL并通过TypeORM管理的健壮数据层。该基础设施旨在处理复杂的低代码DSL结构、AI代理交互以及多租户配置。本页详细介绍了数据库架构、迁移生命周期以及系统升级的具体流程。

数据层架构

系统采用集中式数据库方法,所有业务逻辑、用户数据和低代码资产都存储在一个MySQL实例中。连接和实体管理由使用TypeORM模块的NestJS处理。

核心实体关系

数据库围绕以下几个关键领域构建:

  1. RBAC与用户管理:用户、角色和权限。
  2. 低代码资产:应用、页面、物料和DSL历史记录。
  3. AI基础设施:LLM模型、代理、技能和聊天历史记录。
  4. 系统配置:字典、设置和OSS配置。

数据库与实体映射

下图说明了高级系统组件如何映射到特定的数据库实体及其实现文件。

自然语言到代码实体空间:数据层

flowchart subgraph NL ["Natural Language Space"] direction LR A["AI Skills"] B["Chat History"] C["LLM Configuration"] D["Low-Code App"] end subgraph TypeORM ["Code Entity Space (TypeORM)"] direction LR A1["SkillEntity"] B1["ChatEntity"] C1["LLMModelEntity"] D1["LowcodeAppEntity"] end subgraph MySQL ["Physical Table (MySQL)"] direction LR A2[("skills")] B2[("chats")] C2[("llm_models")] D2[("lowcode_apps")] end A --> A1 B --> B1 C --> C1 D --> D1 A1 --> A2 B1 --> B2 C1 --> C2 D1 --> D2

迁移系统

VTJ.PRO使用结构化的迁移系统来确保开发环境和生产环境之间的模式一致性。这包括程序化迁移(通过NestJS服务)和用于主要版本升级的手动SQL脚本。

手动SQL迁移

对于重大版本升级,例如过渡到v2.2.0,会提供特定的SQL脚本来处理需要事务完整性的复杂架构更改。

示例:v2.2.0 架构更新流程 up_2.2.0.sql脚本在独立事务中执行两个主要操作,以确保原子性:

  1. 创建skills:引入AI技能库,支持多平台(web、h5、uniapp)和依赖跟踪。
  2. 字段修改 :将chats表中的user_content列从TEXT类型升级为LONGTEXT类型,以容纳更大的AI提示。

基础设施迁移逻辑

sequenceDiagram actor System Administrator participant MySQL Database participant Seed Task (npm run seed) Note over System Administrator,MySQL Database: START TRANSACTION System Administrator->>MySQL Database: Execute up_2.2.0.sql MySQL Database-->>MySQL Database: CREATE TABLE skills MySQL Database-->>MySQL Database: ALTER TABLE chats MODIFY user_content LONGTEXT Note over System Administrator,MySQL Database: COMMIT System Administrator->>Seed Task (npm run seed): Trigger Database Seeding Seed Task (npm run seed)->>MySQL Database: Insert Initial Data (seeds/data) System Administrator->>System Administrator: Update System Prompts (coder_v3.md)

数据库种子数据

种子机制用于向数据库中填充必要的初始数据,例如默认角色、管理用户和系统字典。

  • 命令npm run seed
  • 目的:确保在架构迁移后,系统拥有运行所需的元数据(例如,LLM提供者定义或默认AI技能)。

升级流程 (v2.2.0)

升级生产环境需要按照特定顺序执行操作,以维护数据完整性和系统可用性。

升级清单

步骤 操作 描述
1 执行SQL 在生产MySQL实例上运行 up_2.2.0.sql
2 种子数据 运行 npm run seed 来填充新表,如 skills
3 更新提示词 在管理面板中使用 _docs/prompts/coder_v3.md 手动更新AI系统提示词。

skills 表定义

skills 表是v2.2.0版本中的一个关键新增项,它使AI代理能够在代码生成过程中使用特定的工具和组件。

列名 类型 描述
id VARCHAR(36) 主键 (UUID)
code VARCHAR(255) 唯一的技能标识符
content LONGTEXT 技能的实际逻辑或提示词
platform VARCHAR(255) 支持的运行时环境(web, h5, uniapp)
category ENUM 分类:utilcomponentsystem

参考资料

相关推荐
AllData公司负责人44 分钟前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine
2603_954708311 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全
IvorySQL1 小时前
从双解析器到循环工程:IvorySQL 五年技术演进路线的深度观察
大数据·数据库·人工智能·postgresql·开源
wefg12 小时前
【MySQL】事务
数据库·mysql
黑白极客2 小时前
mysql的高可用性
数据库·mysql
一十九的酒2 小时前
Oracle 12c 标准版无缝升级企业版实战记录
数据库·oracle·标准版切换到企业版
ZhengEnCi2 小时前
S02-SpringBoot实体类新增字段对已有数据的影响及自动DDL同步机制详解
数据库·spring boot
Sirius Wu2 小时前
OpenClaw(UpClaw)三层Tool全链路治理深度详解
网络·人工智能·架构·aigc
妙码生花3 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(三十二):增加 admin_rule 模型及数据表迁移
数据库·go·ai编程
QN1幻化引擎3 小时前
给 AI 做一次「意识体检」——基于 QN1 幻化引擎的灵鉴意识识别框架与 DalinX V5 实测
大数据·数据结构·人工智能·算法·架构