Golang 重写 BuildAdmin:可视化拖拽生成 CRUD,有数据的表不删表重建
项目信息
- 开源仓库:
- 文档站:
- 在线体验:
技术栈是 Golang + Vue3,数据库用 PostgreSQL,前端组件库用 Element Plus。项目完全开源,无需授权即可商用;不卖 Pro、Plus,开源版即完整版。
开发过程是 AI 执笔、人工逐行逐句审查的模式,一天约 14 小时,持续了两个月。
与 BuildAdmin 的关系
项目是 BuildAdmin 的 Go 版本。原版由 PHP 编写,GitHub 上 8k star。可视化 CRUD 功能基于 BuildAdmin 移植并做了优化。
可视化 CRUD
传统 CRUD 只能从数据表开始,这里改成了图形化拖拽生成后台增删改查代码,支持三种起点:从零、从已有数据表、从 AI 设计数据表。生成的表格支持 25 种表单组件,包含行级拖拽排序、关联表、受权限控制的编辑和删除,另外支持一键复制上下文数据供 Agent 继续修改,以及生成建表/改表 SQL 供生产环境同步。
开发环境下可视化设计完成后功能直接可用,不需要建表、移动文件等额外步骤。一次生成的内容包括:模型、仓储、服务、控制器、路由注册、前端表格/表单组件、中英文语言包。
SQL 部分会生成完整的新建与修改表语句。有数据的表不会删表重建,而是给出改表 SQL,同步到生产环境比较方便。
生成的 CRUD 全套源码不做多余封装,兼顾二次开发。字段出入库没有一行多余的转换代码,比如 if type == datetime ... 这类判断;前端也没有先转换再发送数据,输入组件无额外封装,保持组件库原生写法。
可视化侧可以对字段拖拽、排序、修改字段对应的数据表设计、修改字段在表格/表单内的呈现方式。25 个字段都有完备的默认设计,默认只需拖动添加即可直接生成,也兼容从传统数据表开始和从 AI 设计数据表开始两种方式。
极简内核
项目只提供必不可少的 30% 核心特性,剩余 70% 交由社区或插件实现。
学习配套
主要作者从零学习 Go 到实战结束,全程记录成 Blog,共 59+ 篇,第一篇 Blog 已开源,可以直接跟着学。
前后端分离
web 文件夹内是干净、完整的前端代码:不含后端代码,所有前端代码文件均在此目录内。
技术栈
后端是 Golang 的前后端分离架构。前端使用 Vue3 的 setup、useTemplateRef 等新特性,状态管理使用 Pinia,并使用了 TypeScript、Vite、Element Plus。
权限验证
基于经典的 RBAC 权限模型,支持可视化权限管理。根据权限规则动态注册路由、菜单、页面、权限节点,支持无限父子级权限分组,前后端搭配鉴权,可自由分派页面和按钮权限。
布局
提供五种布局模式,其中默认布局和左分双栏布局使用无边框设计风格。