Skip to content

cli 命令

安装

bash
go install github.com/fengjx/lc@latest

lc -h可以查看帮助文档

创建项目

bash
lc start -m github.com/fengjx/lc-demo -t httponly

帮助文档

bash
$ lc start -h
NAME:
   lc start - 开始一个新项目

USAGE:
   lc start [command options] [arguments...]

OPTIONS:
   --gomod value, -m value     指定 go.mod module
   --out value, -o value       文件生成目录,默认从 gomod 读取
   --template value, -t value  使用模板,可选参数:lucky, httponly, micro (default: "httponly")
   --help, -h                  show help

模板说明

模板名称说明
httponly仅支持http协议模板
micro支持http、grpc协议的微服务模板
luckylucky 快速开发模板,附带管理后台功能

代码生成

配置文件 gen.yml

yml
ds: # 数据库连接
  type: mysql
  dsn: root:1234@tcp(localhost:3306)/lca?charset=utf8mb4
target:
  custom: # 自定义配置
    tag-name: json                            # 生成 entity tag
    out-dir: ./                               # 代码输出目录
    use-admin: true                           # 是否生成管理后台页面
    gomod: github.com/fengjx/demo             # go.mod 中的 module
    var: # 自定义变量(key-value)
      foo: bar
  tables: # 数据库表  table_name: {} 自定义表配置
    sys_user:
      module: sys
      simple-name: user

生成代码命令

bash
lc migrate -c gen.yml

配置说明

参数默认值说明
ds.typemysql目前只支持 mysql
ds.dsn-数据连接
target.custom.tag-namejson生成 entity 的 tag name
target.custom.template-dir-自定义模板路径,不指定则使用内置模板
target.custom.out-dir./生成代码目录,默认为当前路径
target.custom.out-dir./生成代码目录,默认为当前路径
target.custom.use-adminfalse是否生成基于lucky的管理后台代码
target.custom.gomod-项目 go module path
target.custom.var-自定义参数,key-value格式,在自定义模板中可以通过.Var.xxx获取
target.tables-数据库表
target.tables.${table_name}.use-adminfalse与参数target.custom.use-admin相同,优先级更高
target.tables.${table_name}.module-模块名称
target.tables.${table_name}.simple-name-数据库表在模块内的简称,如:sys_user表,simple-name可以使用user,默认与表名相同
target.tables.${table_name}.Var-i自定义表参数,key-value格式,在自定义模板中可以通过.TableOpt.Var.xxx获取

自定义函数,可以在自定义模板中使用,源码:https://github.com/fengjx/lc/blob/dev/commands/migrate/migrate.go#L226

函数名说明
FirstUpper首字母转大写
FirstLower首字母转小写
SnakeCase驼峰转下划线
TitleCase下划线转驼峰
GonicCasego 风格的驼峰命名,如:HTTPServer
IsLastIndex是否是最后一个元素
Add数字相加
Sub数字相减

自定义函数如何使用可以参考内置模板:https://github.com/fengjx/lc/tree/dev/commands/migrate/template