NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • 使用go-admin那些坑

    • 前言
      • 安装
        • 后端
        • 源码
        • 数据库
        • 启动
        • 前端
      • 示例功能
        • 建表
        • 生成代码
        • 生成Swagger文档
    • Golang
    • other
    NipGeihou
    2023-06-18
    目录

    使用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

    # 启动

    image-20230618151229622

    # 前端

    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
    最近更新
    01
    Docker Swarm
    04-18
    02
    安全隧道 - gost
    04-17
    03
    Solana最佳实践
    04-16
    更多文章>
    Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式