之前录制DBA体系课的时候,为了讲解低代码平台,测试了好几款,都不尽如人意。
有些要付费,有些过于复杂。
而go-admin就恰到好处。特别适合DBA,因为对于只需要CRUD功能的页面,我们只要设计出一张MySQL表,之后页面上点点点就行,不需要写任何代码。
这篇文章就来讲讲具体的使用方法,我们拿增加一个MySQL元数据管理系统举例。
1 后端项目初始化
创建一个文件夹,比如:
dbaproject
进到文件夹中
cd D:\dbaproject
克隆项目
git clone https://github.com/go-admin-team/go-admin.git
使用VSCode打开克隆下来的go-admin。
编译:
cd ./go-admingo env -w GOPROXY=https://goproxy.cn,directgo mod tidygo build
2 创建库和用户
创建库:
create database devops;
创建用户:
create user `devops_rw`@`%` identified with mysql_native_password by 'Udca88agcq';GRANT all ON devops.* TO `devops_rw`@`%`;
3 修改配置文件
config/settings.yml, 复制一份,并修改文件名为:
config/settings.dev.yml
修改数据库配置:
database:# 数据库类型 mysql, sqlite3, postgres, sqlserver# sqlserver: sqlserver://用户名:密码@地址?database=数据库名driver: mysql# 数据库连接字符串 mysql 缺省信息 charset=utf8&parseTime=True&loc=Local&timeout=1000mssource: user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8&parseTime=True&loc=Local&timeout=1000ms#......gen:# 代码生成读取的数据库名称dbname: devops# 代码生成是使用前端代码存放位置,需要指定到src文件夹,相对路径frontpath: ../go-admin-ui/src
gen > dbname 此配置可以根据数据库名称来获取该数据库下所有 table,进行代码生成;
gen > frontpath 代码生成是使用前端代码存放位置,需要指定到 src 文件夹,相对路径;代码要求 go-admin 和 go-admin-ui 必须在同一级目录下,这个路径一定要确定,不然前端代码生成不了。
4 初始化数据
go env -w GOOS=windowsgo run main.go migrate -c config\settings.dev.yml
这一步会创建一些元数据表。
我们可以到数据库中看一下,生成了哪些表:
use devopsshow tables;
可以看到生成了这些表:

5 启动后端项目
启动服务:
go run main.go server -c config\settings.dev.yml
6 下载前端代码
另外开一个VS Code窗口,打开一个Terminal:
cd D:\dbaprojectgit clone https://github.com/go-admin-team/go-admin-ui.git
如果不能直接clone,可以直接去Github上下载zip再解压。
如果是安装包下载,需要修改安装包的名字为go-admin-ui。
7 前端代码初始化
初始化,执行:
npm config set registry https://registry.npmjs.orgnpm install --legacy-peer-deps
8 运行前端代码
$env:NODE_OPTIONS="--openssl-legacy-provider"npm run dev
再到参数设置里面上传logo,并且修改系统名称。
系统设置-参数管理。
9 创建表
这张表,也就是你要增加功能对应的表,比如要增加一个存放MySQL元数据的功能,就设计一张MySQL表。这些字段可以自定义。
这里只是举例,生产环境,可以加上业务名、使用人等等。
use devops;CREATE TABLE `db_info` (`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '编码',hostname VARCHAR(100) NOT NULL COMMENT 'HostName',ip_address VARCHAR(50) NOT NULL COMMENT 'IP',port INT NOT NULL COMMENT 'Port',version VARCHAR(20) COMMENT '版本',status VARCHAR(20) COMMENT '状态',`publish_at` timestamp NULL DEFAULT NULL COMMENT '发布时间',`created_at` timestamp NULL DEFAULT NULL,`updated_at` timestamp NULL DEFAULT NULL,`deleted_at` timestamp NULL DEFAULT NULL,`create_by` int unsigned DEFAULT NULL,`update_by` int unsigned DEFAULT NULL,PRIMARY KEY (`id`),KEY `idx_article_deleted_at` (`deleted_at`) USING BTREE) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='MySQL信息';
10 代码生成
浏览器打开:http://localhost:9527/
按如下步骤点击。

就可以看到我们刚才创建的表:

选择,再确定。
就可以看到我们刚才导入的表:

再点击编辑。
再勾选下图方框选中的内容。

列表,表示要在前端展示的内容。
查询,表示可以根据这些字段进行搜索。
再点提交就行。
再点击代码生成:

再点击“生成配置”:

提示数据生成成功,就表示正常。
11 将新增的API自动托管到接口管理中
上面的操作,已经生成了API,但是这些API信息还没写入到数据库中。
我们可以关闭后端服务,再运行下面命令,就可以把新增的API写入到数据库里。
go run main.go server -c config/settings.dev.yml -a false
12 测试
再刷新前端页面,就会发现新增了一个“MySQL信息”按钮:

点击“新增”,就可以增加MySQL元数据信息。
比如我们增加一个实例之后,效果如下图:

再次感谢go-admin项目所有的贡献者。
地址:
https://github.com/go-admin-team/go-admin
最后,再来介绍一下我的两款产品,【DBA体系课】和【DBA驿站】星球,618活动进行中。
【DBA体系课】可以减700,加我微信(mating3306)再领50元叠加券,到手价1249¥,活动最后3天。课程地址:
https://class.imooc.com/sale/dba
【DBA驿站】星球活动详情可点击跳转,新用户享全年最低价:60¥;月底活动结束,下个月涨价到148¥。




