ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

NocoBase 外部数据源接入指南:将 MySQL 作为外部数据库接入、同步与字段映射全解析

NocoBase 外部数据源接入指南:将 MySQL 作为外部数据库接入、同步与字段映射全解析 NocoBase 外部数据源接入指南将 MySQL 作为外部数据库接入、同步与字段映射全解析【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase本文以 NocoBase 官方文档 外部数据源 - MySQL 为核心骨架并结合当前仓库中数据源管理器plugin-data-source-manager、数据库内核nocobase/database与数据源内核nocobase/data-source-manager的源码实现完整讲解如何把 MySQL 作为外部数据库接入 NocoBase从插件安装、连接配置、数据表选择到字段同步、类型映射与记录唯一标识的设置并深入解释每一步背后的实现原理与限制条件。一、介绍什么是「外部 MySQL 数据源」MySQL 可以作为外部数据库接入 NocoBase。接入后NocoBase 会读取 MySQL 中的数据表、字段和视图并把它们作为外部数据源中的数据表使用。跟主数据库不同外部 MySQL 的真实表结构仍由原业务系统、数据库客户端或迁移脚本维护。NocoBase 负责读取结构、保存字段元数据、配置页面区块、权限、工作流和 API。配置项说明支持版本MySQL 5.7。商业版本标准版、专业版、企业版支持。对应插件nocobase/plugin-data-source-external-mysql。兼容协议使用 MySQL 协议连接。版本说明上表「支持版本 MySQL 5.7」指的是外部数据库的接入兼容范围。当前仓库中 NocoBase 自身使用的主数据库 MySQL 方言mysql-dialect.ts基于mysql2驱动实现并带有版本守卫getVersionGuard要求8.0.17二者针对的场景不同外部数据源是读取已有库主数据库是NocoBase 自己建表管理。适合使用外部 MySQL 的场景接入已有 ERP、MES、WMS、CRM 等业务系统的 MySQL 数据库在不迁移历史数据的情况下用 NocoBase 搭建管理界面对已有表做权限控制、流程处理、数据修正或报表展示数据库结构继续由 DBA、迁移脚本或原系统维护:::warning 注意 外部 MySQL 不是 NocoBase 的系统数据库。NocoBase 不会接管它的备份、还原、迁移和表结构变更。 :::二、插件安装该插件为商业插件需要对应的商业授权才能激活使用。NocoBase 将外部数据源能力统一沉淀在plugin-data-source-manager中位于 packages/plugins/nocobase/plugin-data-source-manager服务端负责连接测试、表读取、字段元数据保存、同步刷新等核心动作src/server客户端负责「数据源管理」界面、Collections 加载、权限配置与字段配置页面src/client 与 src/client-v2。从源码结构看MySQL 外部数据源正是通过plugin-data-source-manager提供的通用外部数据源框架接入连接后由 introspection结构探查机制读取 MySQL 的表、视图、字段与约束再落库为dataSources、dataSourcesCollections、dataSourcesFields三张元数据表。关于插件的完整激活与授权方式请参考官方商业授权激活指南。三、添加数据源在「数据源管理」中点击「Add new」选择 MySQL然后填写连接信息。常见连接配置如下配置说明Data source name数据源标识名称用于页面区块、权限、工作流和 API 中引用。创建后不能修改。Data source display name数据源在界面中显示的名称建议使用业务人员能理解的名称比如「ERP MySQL」「订单库」。Host / PortMySQL 主机地址和端口。默认端口通常是3306。Database要连接的 MySQL 数据库名称。Username / Password用于连接 MySQL 的账号和密码。NocoBase 只能读取这个账号有权限访问的对象不会授权或读取其他账号私有对象。Table prefix表名前缀。配置后NocoBase 只读取匹配该前缀的数据表和视图并在 NocoBase 中生成不带前缀的数据表名称。Collections / Add all collections控制接入范围。启用「Add all collections」时NocoBase 会接入当前范围内的全部表和视图关闭后只接入你在「Collections」里勾选的对象。Enabled the data source是否启用这个数据源。关闭后数据源配置会保留但页面区块、权限、工作流和 API 无法继续读取它的数据。:::tip 提示 如果 MySQL 中对象很多优先通过Database、Table prefix和「Collections」收窄范围。只接入当前应用会用到的表和视图后续权限配置、页面搭建和同步维护都会更轻。 :::3.1 连接测试与表读取背后的实现「添加数据源」表单在提交时会先做连接测试。服务端对应动作定义在 contenteditable="false">【免费下载链接】nocobaseNocoBase is an open-source AI no-code platform for building business systems fast. Instead of generating everything from scratch, AI works on top of production-proven infrastructure and a WYSIWYG no-code interface, so you get both speed and reliability.项目地址: https://gitcode.com/GitHub_Trending/no/nocobase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进