解锁ERD Online 高级隐藏功能

ERD Online 是全球第一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL 查询等功能,辅以版本、导入、导出、数据源、SQL 解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。

ERD Online 产品图鉴

解锁ERD Online 高级隐藏功能_第1张图片 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 审批

解锁ERD Online 高级隐藏功能_第2张图片

模型建好之后,打开模型设计

解锁ERD Online 高级隐藏功能_第3张图片

打开数据源页面,新增三个数据源,分别对应开发环境、测试环境、生成环境

解锁ERD Online 高级隐藏功能_第4张图片

注:数据库管理这个页面可以通过权限管理,对普通成员隐藏

回到模型页面,新增一个分组和表,名称随意,比如test

解锁ERD Online 高级隐藏功能_第5张图片

注:分组仅用于管理表,不会往数据库同步

打开版本页面,这时候状态为有差异未同步,我们初始化一个版本

解锁ERD Online 高级隐藏功能_第6张图片

点击对应版本详情按钮可以看到刚才新建的表,已经生成了 DDL

解锁ERD Online 高级隐藏功能_第7张图片

点击SQL审批按钮,录入审批信息,数据源选择开发环境

解锁ERD Online 高级隐藏功能_第8张图片

提交之后,关闭弹窗,点击左侧我的审批,点击通过

解锁ERD Online 高级隐藏功能_第9张图片

这时候,表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 多平台发布

你可能感兴趣的:(后端)