跳至主要內容

Ent 管理

Ryan SU大约 2 分钟

Ent 文件生成

视频教程

extra ent template 模板生成

goctls extra ent template -u
参数名称必须默认值介绍
updatefalse是否更新本地所有 template 及 ent 版本
listfalse列出所有支持的模板
dirent 目录,若为空则会尝试自动查找,需要在项目根目录执行才可以自动查找
add添加模板,需要为列表内的模板
用法:
  goctls extra ent template [选项]

选项:
  -a, --add string   添加 ent 模板
  -d, --dir string   ent 目录。如果为空,则 goctls 将自动查找
  -h, --help         显示帮助信息
  -l, --list         列出所有支持的模板
  -u, --update       更新所有模板

extra ent mixin 模板生成

goctls >= 1.5.14

goctls extra ent mixin -a soft_delete
$ goctls extra ent mixin -h
Usage:
  goctls extra ent mixin [flags]

Flags:
  -a, --add string   为 ent 添加 Mixin 模板
  -d, --dir string   ent 目录。如果为空,goctls 将自动查找它
  -h, --help         help for mixin
  -l, --list         列出所有支持的模板
  -u, --update       更新所有模板

目前已支持软删除模板

extra ent import 数据库结构导出到 schema

goctls >= 1.6.12

注意

建议直接在项目根目录执行命令,可以不用配置 -o 参数, 例如

goctls extra ent import -d "mysql://root:simple-admin.@tcp(localhost:3306)/simple_admin?charset=utf8mb4&parseTime=True&loc=Local" -t "sys_tokens"
$ goctls extra ent import -h
从数据库生成 Ent Schema

Usage:
  goctls extra ent import [flags]

Flags:
  -d, --dsn string              数据库的 DSN 地址,支持 mysql 和 postgres。 例子:"mysql://user:pass@tcp(localhost:3306)/dbname"
                                "postgres://user:pass@host:port/dbname?sslmode=disable"
  -e, --exclude_tables string   排除的数据表,用于导出所有表时,需指定所有中间表及没有 primary key 的表,例子: role_menu,user_roles
  -h, --help                    help for import
  -o, --output string           输出路径,为项目根目录
  -t, --tables string           指定数据表,例子: sys_users,sys_tokens

相关信息

goctls 支持生成 index 索引,但是索引的名称的后缀必须为字段名称,且只支持生成单索引,不支持复合索引

extra ent schema 命令生成空的 schema 文件

goctls >= 1.5.20

$ goctls extra ent schema -h
生成 schema 空白文件

Usage:
  goctls extra ent schema [flags]

Flags:
  -h, --help                help for schema
  -m, --model_name string   Model 名称