zhangwenjian
4911730012
fix 🐛 : give the natural keys a constraint the database can keep
...
sys_user.username, sys_role.role_key and sys_dict_type.dict_type had no
unique index. Uniqueness was a SELECT COUNT followed by an INSERT, which
two concurrent requests both pass — and login resolves a username with
First, so which of the two accounts answers is whichever the database
returns.
The index cannot be on the key alone, because a soft-deleted row keeps
occupying the name and a deleted user's username could never be used
again. It has to include the delete marker, and the marker has to be
non-null: two live rows are (alice, NULL) and (alice, NULL), and NULL is
not equal to NULL, so an index over a nullable marker admits both. That
is the worst of the three states — a constraint that reads as protection
and binds nothing — and there is a test that demonstrates it rather than
asserting it.
ModelTime.DeletedAt is milliseconds since the epoch now, zero while the
row is live. Sixteen tables carry it; the migration converts each one,
preserving when each deleted row was deleted, then adds the three
indexes.
Written to be re-runnable rather than transactional, because DDL does not
roll back on MySQL and an operator whose first attempt failed halfway
should have nothing to do but run it again. It refuses before altering
anything if a table already holds duplicates, naming them, rather than
letting the index fail and leaving the operator to guess.
The timestamp conversion happens in Go: turning a timestamp into epoch
milliseconds is spelled differently by every dialect this supports, and
these row counts do not justify four versions of it.
2026-08-22 11:27:22 +08:00
zhangwenjian
b81611ba72
chore 🔧 : 清理 refresh_token 的残留权限数据
...
接口移除后,库中仍留有三类记录:sys_api 的接口登记、sys_menu_api_rule 的
菜单绑定、casbin_rule 的策略。留着会让「接口管理」列出一个不存在的端点,
角色配置里也仍可勾选。
- 新装:从 db.sql 与 db-sqlserver.sql 的种子数据中删除该接口
- 已有部署:新增迁移清理,按 path 匹配而非固定 id,因为执行过
`server -a` 重新注册接口的库中 id 会与官方种子数据不同
2026-08-14 21:42:59 +08:00
zhangwenjian
ed9450a2d5
feat ✨ : 补充 demo 模块的菜单与权限种子数据
...
一个业务模块要在界面上可用,需要四类数据协同:
sys_api 后端路由登记,Casbin 据此判定
sys_menu 侧边栏菜单,含目录 M、菜单 C、按钮 F 三级
sys_menu_api_rule 菜单与接口的关联,角色保存时据此生成策略
casbin_rule 实际生效的权限策略
菜单的 menu_name 与前端组件 name 保持一致(DemoProduct),按钮的
permission 与前端 v-permisaction 标识一致(demo:product:add 等)。
策略写入 casbin_rule 而非 sys_casbin_rule:后者对应的 models.CasbinRule
是历史遗留,其 7 列 size:512 唯一索引在 MySQL 下会超出索引长度限制,实际
生效的是 adapter 创建的 casbin_rule 表。
所有写入均为存在则更新、不存在则插入,迁移可安全地在已有数据的库上执行。
实测:在含 67 条菜单、121 条接口的库上执行后各表数据正确;清除版本记录重
跑一次,各表行数不变,确认幂等。
2026-08-14 16:57:55 +08:00
zhangwenjian
4d7c9e5a12
feat ✨ : 补充 demo 模块的建表迁移
...
放在 version/ 而非 version-local/:后者已被 .gitignore 忽略,是留给使用
者存放自身迁移脚本的位置,示例迁移需随框架一起分发。文件注释中说明了这
一区分。
2026-08-14 16:46:53 +08:00
zhangwenjian
869394c898
perf 👌 : Remove caspin table from data migration
2022-08-09 18:21:00 +08:00
zhangwenjian
a6ffac657e
fix 🐛 : Add MySQL judgment in data migration
2022-08-09 15:20:45 +08:00
zhangwenjian
0d47fb4e68
Merge branch 'master' of github.com:go-admin-team/go-admin
2022-08-08 16:28:34 +08:00
zhangwenjian
8bfee8af16
refactor 🎨 : 添加菜单paths默认数据
2022-08-08 16:28:26 +08:00
Vingurzhou
9a596397ca
Update 1599190683659_tables.go
2022-08-08 11:28:55 +08:00
zhangwenjian
1bea64bb6d
config 🔧 : set DB CHARSET utf8mb4( #674 )
2022-08-08 10:16:43 +08:00
zhangwenjian
09bfdc3d39
config 🔧 : set DB CHARSET utf8mb4
2022-08-08 10:15:29 +08:00
kaiyuan
eb33515e29
throw error if migrate failed
2022-04-08 10:32:07 +08:00
wenjianzhang
443c30d48c
Update 1599190683659_tables.go
2021-10-22 12:05:39 +08:00
zhangwenjian
b6be297a1e
refactor 🎨 : 添加默认demo代码生成表
2021-07-04 13:43:32 +08:00
zhangwenjian
25472887c9
refactor 🎨 :移除内容管理、行政区管理和资源管理
2021-06-18 21:34:57 +08:00
zhangwenjian
493d714723
refactor 🎨 :修改行政区数据sql
2021-06-17 21:46:19 +08:00
wenjianzhang
3a688c06a1
refactor 🎨 :初始化脚本针对关键字添加引号
2021-06-15 17:54:04 +08:00
wenjianzhang
992d892523
refactor 🎨 :补充初始化数据
2021-06-15 12:16:44 +08:00
wenjianzhang
52f45e362b
Merge branch 'dev' of github.com:go-admin-team/go-admin into dev
2021-06-11 15:26:41 +08:00
wenjianzhang
1391366ece
refactor 🎨 : 添加行政区模型
2021-06-11 15:26:35 +08:00
zhangwenjian
352224b994
refactor 🎨 : 修改数据迁移脚本
2021-06-10 11:22:23 +08:00
wenjianzhang
54e116818b
refactor 🎨 : 数据初始化
2021-06-09 18:30:47 +08:00
wenjianzhang
6a31ac916a
refactor 🎨 : 移除v1版本中的数据迁移脚本
2021-06-09 18:25:00 +08:00
zhangwenjian
a54d4ba0c1
format 🥚 代码格式化
2021-05-31 18:10:23 +08:00
wenjianzhang
dfd460c50b
feat ✨ apis路径简化
2021-05-14 12:19:22 +08:00
wenjianzhang
cd29c1728d
refactor 🎨 删除模版生成提示代码
2021-05-10 18:23:41 +08:00
linwenxiang
bf7934c20a
fix 🐛 优化迁移功能
2021-04-26 14:47:31 +08:00
linwenxiang
1a111f0666
migrate ✅ 优化migrate
2021-04-23 14:25:31 +08:00
wenjianzhang
547a5eb8e4
fix 🐛 :修复初始化Duplicate column name 'is_frontend' ( #376 )
2021-03-25 18:35:09 +08:00
linwenxiang
12893fc09d
修复swagger无法生成文档
2021-03-24 18:52:59 +08:00
wenjianzhang
5b69883a9f
fix 🐛 :系统配置初始化sql
2021-03-17 14:30:16 +08:00
wenjianzhang
5756286641
fix 🐛 :去掉迁移脚本中的数据库名称
2021-03-17 11:23:17 +08:00
wenjianzhang
6746dbd9cf
feat ✨ :参数配置中添加是否前台控制
2021-03-17 11:16:53 +08:00
wenjianzhang
2134d9fa58
fix 🐛 :修复日志状态显示问题
2021-03-17 11:16:02 +08:00
linwenxiang
8a471e1db7
修复模版不兼容actions模式生成
...
迁移重复问题
2021-03-11 22:19:12 +08:00
wenjianzhang
3a570e50a1
合并
2021-03-11 15:48:00 +08:00
linwenxiang
25d8364bf4
修改,兼容go-admin sdk方案
2021-03-09 19:12:49 +08:00
linwenxiang
9c7099db1f
修复初始化数据时问题
2021-03-05 19:01:05 +08:00
linwenxiang
86700cfd52
修复初始化数据时问题
2021-03-05 17:03:56 +08:00
linwenxiang
39dd1ee6f8
兼容casbin2.24.0版本log
...
迁移脚本编译时不打包
2021-03-05 13:23:21 +08:00
linwenxiang
c294bb1585
Merge remote-tracking branch 'origin/dev' into dev
...
# Conflicts:
# template/v4/dto.go.template
2021-03-04 23:47:14 +08:00
linwenxiang
e2952fa393
调整整体架构写法
...
调整db用法
调整日志用法
调整模版
2021-03-04 23:45:16 +08:00
wenjianzhang
b8ec705e0a
feat ✨ :添加行政区域基础数据
2021-02-26 01:05:20 +08:00
linwenxiang
5ff282c23d
feat ✨ :添加资源管理中的需要开放的必开接口
2021-02-25 01:32:06 +08:00
zhangwenjian
f22f654c91
format 🥚 :调整主键key和自增长tag
2021-02-24 14:22:33 +08:00
zhangwenjian
561566f172
fix 🐛 :修改内容分页地址
2021-02-23 17:50:53 +08:00
linwenxiang
da347e095f
权限相关问题修复
2021-02-22 22:00:34 +08:00
zhangwenjian
017d669a04
fix 🐛 :修复通过字典类型获取字段数据的路有变更
2021-02-22 15:44:04 +08:00
linwenxiang
deeb82048b
数据库连接初始化优化
...
权限部分修改
2021-02-21 14:06:13 +08:00
linwenxiang
4979fd659f
完成字典模块改造
2021-02-20 11:06:59 +08:00