适用于 MySQL 的 Schema 审核策略
Bytebase 是一款开源数据库工具,它面向整个研发组织设计,旨在帮助 DBA 和应用开发者更安全、更高效地管理应用开发生命周期中的数据库操作 (Database DevOps)。
Schema 审核策略是什么
Schema 审核策略是由一组检查 SQL 语句质量的规则组成。DBA 可以通过 Bytebase 为每一个环境配置不同的 schema 审核策略。在 schema 变更被执行之前,Bytebase 会根据配置的schema 审核策略自动检查 SQL 语句。如果有不符合 schema 审核规则的 SQL 语句,Bytebase 会以警告或者错误信息的方式提示用户,并暂停正在执行的 schema 变更。
包含哪些规则
在 Bytebase v1.1.1 中,schema 审核策略包含了 6 大类 15 条规则。下面依次介绍这些规则。
命名约定
表名命名规则
列名命名规则
索引命名规则
外键命名规则
Unique 索引命名规则
SQL 语句
禁止使用 「SELECT *」
必须有 「WHERE」查询条件
禁止用「%」作为 Like 的前缀通配符进行匹配
表
每个表必须要有主键
Schema
向后兼容检测
列
为表指定必须含有的列 禁止任何一个列的值为 NULL
数据库引擎
存储引擎必须是 InnoDB
如何配置
下文以给生产环境配置 schema 审核策略为例,介绍了配置 schema 审核策略的具体步骤。
在「环境」面板选择环境「Prod」,然后将页面滚动到底部,点击「配置审核策略」
选择适用于生产环境的策略模板,并点击「下一步」。
完成规则调整后点击「下一步」
如何使用
如果你创建的 schame 变更会应用到配置了 schema 审核策略的环境中, Bytebase 在执行变更前会自动检查相关 SQL 语句。如果检测到与 schema 审核策略不符的 SQL 语句,会以警告或者错误信息的方式提示用户,并暂停对应 issue 的执行,如下图所示。