lightdb特性之内置数据库规范检查和违约拦截
因为开发不规范,DBA和架构师们通常会制定各种开发规范。比如关键字不能作为标识符,必须包含主键、最后修改时间、创建时间等。虽然规范很多,但是执行的时候通常会大打折扣,因为有大量的客户端可以连接数据库,没有足够的保障机制和制度。为了确保规范的落地,lightdb内置了开发规范校验特性,对于不符合规范的DDL会进行拦截或警告。其通过参数lightdb_best_practice_level和lightdb_best_practice_mode控制。如下:
[zjh@hs-10-20-30-193 data]$ ltsql -p9999 ltsql (13.3-22.2) Type "help" for help. zjh@postgres=# drop database id; DROP DATABASE zjh@postgres=# create database id; WARNING: LightDB DDL check warn! keyword not allowed with [db name]:id CREATE DATABASE zjh@postgres=# show %best%; name | setting | description -----------------------------+---------+--------------------------------------------- lightdb_best_practice_level | warn | LightDB DDL specification inspection level. # error代表当错误处理,warn代表当警告处理 lightdb_best_practice_mode | all | LightDB DDL specification inspection mode. (2 rows) zjh@postgres=# create table text(id int); WARNING: LightDB DDL check warn! keyword not allowed with [table name]:text WARNING: LightDB DDL check warn! keyword not allowed with [column name]:id WARNING: LightDB DDL check warn! no primary key! WARNING: LightDB DDL check warn! no gmt_create or no gmt_modified! CREATE TABLE zjh@postgres=# create index id on text(id); WARNING: LightDB DDL check warn! keyword not allowed with [index name]:id CREATE INDEX
其中,
参数lightdb_best_practice_level用于设置对不符合规范的设计是当警告处理还是错误处理。默认为warn警告,error代表错误。
参数lightdb_best_practice_mode用于设置启用哪些检查,当前支持keyword_not_allowed,bad_datatype,must_have_pk,must_have_gmt,no_more_100cols这五种。含义分别为:标识符检查 (including table name, field name, library name and index name), 不建议使用的postgresql类型检查 (float,double,real, uuid,bytea,boolean,bit,character), 表设计最佳实践,包括主键、修改时间、字段数限制不超过100。
当前对于创建、修改表、库、索引这三种最主要的对象进行了支持。
详细可参见LightDB官方文档https://www.hs.net/lightdb/docs/html/ddl-check.html。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2019-05-28 搭建高可用rabbitmq集群及spring boot实现集群配置
2017-05-28 叶亚明:合格CTO的六要素(转)