使用go-admin那些坑
# 前言
截止 1687071475234
时的官方文档并不完善,再此记下过程中上手经过及踩过的坑。
# 安装
# 后端
# 源码
操作时的 Revision Number:31cd1ee7680267f170a100aada4d84b4401db5cb
Git:https://github.com/go-admin-team/go-admin
# 克隆仓库
git clone https://github.com/go-admin-team/go-admin.git
# 进入文件夹
cd ./go-admin
# 安装依赖
go mod tidy
# 构建:这一步可以忽略,在Goland运行即可,当然实际上IDE也是帮你做这一步
go build
# 数据库
- 创建数据库,过程略
mv config/settings.yml config/settings.dev.yml
- 修改里面的数据库配置
- 初始化数据表:
go run main.go migrate -c config\settings.dev.yml
# 启动
# 前端
Git:https://github.com/go-admin-team/go-admin
略,就是普通的 Vue 项目。
# 示例功能
此处依然还是以经典的 Student
为例
# 建表
官方的数据库规范
字段 | 字段名称 | 字段类型 | 字段说明 |
---|---|---|---|
id | 主键 | int(11) | 记录 id 到 |
create_by | 创建人 | int(11) | 记录创建人,控制数据权限是需要用到 |
update_by | 修改人 | int(11) | 记录修改人 |
created_at | 创建时间 | timestamp | 记录添加时间字段,不需要手动维护 |
updated_at | 更新时间 | timestamp | 记录更新时间的字段,不需要手动维护 |
deleted_at | 删除时间 | timestamp | 记录删除时间的字段,不需要手动维护,如果存在此字段将会生成回收站功能,字段默认值务必为 null |
- 复制 数据库中已有的
tb_demo
表为student
表 - 删除 表中多余的索引(个人觉得没有必要)
- 按需 添加字段
参考DDL
CREATE TABLE `student` (
`id` BIGINT(19) NOT NULL AUTO_INCREMENT COMMENT '主键编码',
`code` VARCHAR(128) NOT NULL COMMENT '学号' COLLATE 'utf8mb4_0900_ai_ci',
`name` VARCHAR(128) NOT NULL COMMENT '姓名' COLLATE 'utf8mb4_0900_ai_ci',
`remake` VARCHAR(128) NULL DEFAULT NULL COMMENT '备注说明' COLLATE 'utf8mb4_0900_ai_ci',
`created_at` DATETIME(3) NOT NULL COMMENT '创建时间',
`updated_at` DATETIME(3) NOT NULL COMMENT '最后更新时间',
`deleted_at` DATETIME(3) NULL DEFAULT NULL COMMENT '删除时间',
`create_by` BIGINT(19) NOT NULL COMMENT '创建者',
`update_by` BIGINT(19) NOT NULL COMMENT '更新者',
PRIMARY KEY (`id`) USING BTREE
)
COMMENT='学生表'
COLLATE='utf8mb4_0900_ai_ci'
ENGINE=InnoDB
AUTO_INCREMENT=2
;
# 生成代码
这里使用项目的代码生成功能,这里参考官方文档生成代码 (opens new window)部分即可。需要注意的几点
- 生成代码时读取的数据库需要单独配置:
settings.gen.dbname
(配置文件字段) - 点击
代码生成
:会直接生成代码到项目目录中(包括前、后端项目) - 点击
生成配置
:菜单的配置直接进入数据库中 - 重启前后端项目,即可看到。
# 生成 Swagger 文档
官网文档使用 go generate
生成文档,实际生成的文档在 docs
目录下而非原有文档的 docs/admin
去,且文件名也不一致。
应使用:
swag init --instanceName admin --parseDependency --parseDepth=6
如果提示没有 swag
这个命令,那还需要
# 版本号要和项目的go.mod里的版本号一直
go install github.com/swaggo/swag/cmd/[email protected]
参考:[swag/README_zh-CN.md at v1.8.3・swaggo/swag・GitHub](swag/README_zh-CN.md at v1.8.3・swaggo/swag・GitHub )
上次更新: 2024/03/11, 22:37:05