「免费开源」基于 Vue 和 Quasar 的前端 SPA 项目 crudapi 后台管理系统实战之数据库逆向(十二)
基于 Vue 和 Quasar 的前端 SPA 项目实战之数据库逆向(十二)
回顾
通过之前文章https://xie.infoq.cn/article/55bd372c8a9e4d7400945398d的介绍,实现了动态表单功能。如果是全新的项目,通过配置元数据并且创建物理表,从而自动实现业务数据的 CRUD 增删改查。但是如果数据库表已经存在的情况下,如何通过配置表单元数据进行管理呢?这时候数据库逆向功能就很有必要了。
简介
数据库逆向就是通过读取数据库物理表 schema 信息,然后生成表单元数据,可以看成“dbfirst”模式,即先有数据库表,然后根据表生成元数据,逆向表单后续操作和普通动态表单类似。
UI 界面
输入物理表名称,启用“数据库逆向”功能,然后点击“加载元数据”,然后会自动填充表单字段相关元数据信息。
数据表准备
以 ca_product 产品为例,通过 phpmyadmin 创建表
创建产品表
查询 schema
mysql 数据库通过如下 SQL 语句可以查询表单、字段、索引等信息
表基本信息
字段信息
索引信息
API JSON
通过 APIhttps://demo.crudapi.cn/api/metadata/tables/metadata/ca_product查询 ca_product 的 schema 信息, 格式如下:
核心代码
前端根据 API 返回的 schema 信息,转换成 crudapi 的元数据格式,并显示在 UI 上, 主要代码在文件 metadata/table/new.vue 中,通过 addRowFromMetadata 方法添加字段,addIndexFromMetadata 添加联合索引。
例子
以 ca_product 为例子, 点击“加载元数据之后”,表字段和索引都正确地显示了。保存成功之后,已经存在的物理表 ca_product 会自动被元数据管理起来,后续可以通过 crudapi 后台继续编辑,通过数据库逆向功能,零代码实现了物理表 ca_product 的 CRUD 增删改查功能。
小结
本文主要介绍了数据库逆向功能,在数据库表单已经存在的基础上,通过数据库逆向功能,快速生成元数据,不需要一行代码,我们就可以得到已有数据库的基本 crud 功能,包括 API 和 UI。类似于 phpmyadmin 等数据库 UI 管理系统,但是比数据库 UI 管理系统更灵活,更友好。目前数据库逆向一次只支持一个表,如果同时存在很多物理表,就需要批量操作了。后续会继续优化,实现批量数据库逆向功能。
demo 演示
官网地址:https://crudapi.cn
测试地址:https://demo.crudapi.cn/crudapi/login
附源码地址
GitHub 地址
https://github.com/crudapi/crudapi-admin-web
Gitee 地址
https://gitee.com/crudapi/crudapi-admin-web
由于网络原因,GitHub 可能速度慢,改成访问 Gitee 即可,代码同步更新。
版权声明: 本文为 InfoQ 作者【crudapi】的原创文章。
原文链接:【http://xie.infoq.cn/article/08a24e62ce8440202bb04c993】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论