ERD Online 是全球第一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL 查询等功能,辅以版本、导入、导出、数据源、SQL 解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。
ERD Online 产品图鉴
背景
❝❞
很多时候,经验是被痛苦逼出来的,流程是被错误逼出来的。在上线的过程当中,会遇到了一些问题,造成了研发耽误了不少时间。原因是上线的不规范性以及没有任何的权限限制。 另外互联网项目版本开发都非常频繁。一天上线十几个小版本,也是有可能的。像我现在的公司,经常一天修改好多次文案,就需要不断的上线。如果处理不及时上线的话,会造成用户的一些误解,导致一些投诉以及不好的用户体验。这么频繁的修改上线,也是需要一定的流程和规范保证。
从技术的视角来看待上线流程这个事情,无非会涉及到几个元素:
-
代码、数据库、制品库(npm、maven、docker)等 -
代码管理手段目前已经非常成熟,可以通过 git 做好代码的管理 -
制品库也有相对应的管理手段,比如 maven 的 nexus 仓库,docker 的 docker hub 仓库
放眼看有哪些针对数据库上线流程的管理手段?也许你会想到 navicat、datagrip、DBeaver 等「工具」。特意把工具两个字加粗了,因为他们确实只是某个环境下的「工具」。
❝工具的最大弊端就是不能操控生产环境
❞
ERD Online 的定位是「生产力平台」,它和这类工具有哪些优势和不足呢?
-
优势
-
团队协作 -
权限控制 -
版本控制 -
快速回滚 -
快速克隆 -
快速建表 -
SQL 查询 -
SQL 审批 -
操作审计 -
源码开放 -
完全国产 -
前沿技术 -
SAAS 部署 -
前后端分离 -
像操作 Excel 一样、修改元数据结构(真的 nice)
-
-
不足
-
多数人习惯了无权限模式下随意对数据源改动的方式,在开始使用 ERD Online 的时候,不太适应(想要这么用的人,可以新建个人项目,就没权限控制了) -
不支持视图、存储过程(互联网项目这两个大概率是禁用的) -
暂时不支持数据修改,未来会加上
-
ERD Online 作为一款免费开源元数据在线管理平台,可以很好的解决数据库上线环节不连续、操作不可追溯、权限不可控、变化不透明等问题。可以作为数据库上线环节中的标准产品来使用。
解锁高级隐藏用法
通常来说,一个产品从开发到上限至少经过三个环节:开发 → 测试 → 投产,在这三个环节当中,从左往右:
-
权限依次收缩 -
变更依次传递
白话解释这两条规则
-
开发阶段权限控制最松,可以放开全部权限,往右依次收缩,到生产环境时,权限收缩至最小可用,比如:往数据库执行变更的权限,可以限定为管理员或者 DBA -
开发阶段的变更,要依次往测试执行,测试通过后,再往生产执行
那么依照这两条原则,ERD Online 有对应的解决方案吗?
-
其实,ERD Online 中针对这种场景,从设计之初,就考虑到了,目前发布的版本,也支持这种用法。 -
很多人可能没有探索到这个功能,今天带领大家解锁这个生产力功能吧!
首先,先新建一个测试模型,创建团队类型的吧,方便等会演示 SQL 审批
模型建好之后,打开模型设计
打开数据源
页面,新增三个数据源,分别对应开发环境、测试环境、生成环境
注:数据库管理这个页面可以通过权限管理,对普通成员隐藏
回到模型
页面,新增一个分组和表,名称随意,比如test
注:分组仅用于管理表,不会往数据库同步
打开版本
页面,这时候状态为有差异未同步,我们初始化一个版本
点击对应版本详情
按钮可以看到刚才新建的表,已经生成了 DDL
点击SQL审批
按钮,录入审批信息,数据源选择开发环境
提交之后,关闭弹窗,点击左侧我的审批
,点击通过
这时候,表test
就同步到了开发环境
在确认开发环境没问题之后,重复上面审批步骤,在选择审批数据源的时候,选择测试环境
在确认测试环境没问题之后,重复上面审批步骤,在选择审批数据源的时候,选择生产环境
经过这样一个过程,就完成了数据源从设计到开发,再从开发到生产的上线过程
在我的工单
和我的审批
也留下三次审批记录,以及每次审批的具体 SQL 变动
❝❞
整个过程中,权限控制(按钮级别)、SQL 审批是其他工具都不具备的核心功能 再配合版本的回滚功能,就可以完成元数据整个生命周期的闭环管理
其实,ERD Online 还有一个隐藏的高级功能:异构数据源版本管理。
-
比如:一个产品有多种数据源(mysql、oracle、db2 等),想要知道他们之间的差异,以及同时管理他们的版本变化。 -
这个隐藏功能后面再出一篇文章详细说明吧!大家也可以自行探索下,目前发版的功能里面有这个功能!
这两个隐藏功能具体的说明,见这篇文章
https://mp.weixin.qq.com/s?__biz=Mzg4MjkwMTA3NQ==&mid=2247484336&idx=1&sn=22ededeb3b6fb123fffbdc955e0cd1f9&chksm=cf4eea8cf839639a04a44abcc100499ba6501b06257f0665ef71a159a2b21b61ee802321cccb#rd
交流渠道
元数据 ERD Online 体验:https://erd.zerocode.net.cn
元数据 ERD Online 文档:https://portal.zerocode.net.cn
低代码 论坛:https://github.com/www-zerocode-net-cn/ERD-Online/discussions
低代码 LOCO 体验:https://loco.zerocode.net.cn
本文由 mdnice 多平台发布