mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-09 11:32:48 +08:00
3.4 KiB
3.4 KiB
name, description
| name | description |
|---|---|
| ulthon-scheme-curd-workflow | 指导使用 Scheme 与 CURD 的标准开发流程。需要新增/调整表结构并生成模块基础代码时调用。 |
Scheme + CURD 标准工作流
何时调用
- 新增业务表、调整字段、补充索引/注释,并希望保持“代码 <-> 数据库”一致。
- 准备生成控制器/模型/视图等基础 CRUD 代码。
关键原则
- CURD 生成前,Scheme 与数据库表结构必须完全一致,否则会被拒绝。
- 业务 Scheme 代码统一放在
app/admin/scheme/。 - 表结构设计遵循项目数据库规范:表名小写下划线、字段注释完整、避免 ENUM。
- CURD 命令中的
{table}参数应为不含前缀的下划线格式(例如:数据库表ul_user_profile对应的参数为user_profile)。 - CURD 生成的页面脚本(
index.js/add.js/edit.js/read.js/_common.js)默认与视图文件放在同一目录:app/admin/view/<模块路径>/,不提供“输出到其他 JS 目录”的配置项。 - 一旦你开始在生成代码上做业务改造,就应默认“正式目录不可被覆盖”,后续结构变更需要走“临时生成 + 按需合并”。
CURD 命令参数说明
| 参数 | 简写 | 说明 |
|---|---|---|
--table |
-t |
主表名(支持带前缀或不带前缀) |
--force |
-f |
强制覆盖模式(谨慎使用) |
--delete |
-d |
删除模式(删除生成的文件,不是数据库操作) |
--runtime |
-r |
临时生成模式(推荐用于预览) |
参数使用建议
- 首次生成:直接使用
-t生成到项目目录 - 已有业务代码:使用
-r生成到临时目录,对比并手动合并新增字段/逻辑 - 删除文件:
-d用于清理已生成的文件,不影响数据库
推荐流程
A. 以代码为准(推荐)
- 在
app/admin/scheme/新建或修改对应表的 Scheme 类。 - 仅查看差异(不改库),确认当前 Scheme 与 DB 的不一致点:
php think scheme:sync --dry-run
- 执行同步,将代码结构同步到数据库:
php think scheme:sync
- 生成 CURD(先生成到临时目录确认更稳妥,
{table}需使用下划线格式):
php think curd -t {table} -r
- 初次接入(代码还未做业务改造)可选择正式生成或覆盖:
php think curd -t {table}
php think curd -t {table} -f
A2. 已经做过业务改造时的推荐做法(临时生成 + 按需合并)
适用场景:你已经修改过 CURD 生成的控制器/模型/视图/JS 等代码,此时再次 -f 覆盖会丢失业务改动。
- 先完成结构同步(
scheme:sync或scheme:make),确保与数据库一致。 - 始终生成到临时目录:
php think curd -t {table} -r
- 对比临时目录与正式目录的差异,仅把“新增字段/新增校验/新增表单项/新增列表列”等结构性变更按需合并回正式代码。
- 合并后再做一次功能自测,重点验证新增字段的新增/编辑/列表/详情与校验链路。
B. 以数据库为准
- 在数据库中创建/修改表结构。
- 反向生成 Scheme 代码(
{table}需使用下划线格式):
php think scheme:make -t {table}
- 再执行 CURD:
php think curd -t {table} -r
交互提示
- 命令行工具通常支持
--force-force(-ff)跳过交互确认。