开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:代码生成工具集
作者:喵个咪
- 2025-12-27 湖南
本文字数:3587 字
阅读完需:约 12 分钟
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:代码生成工具集
我们为go-wind-admin这个项目打造了一个代码生成工具集。
cfgexp 用于将服务本地配置导入到远程配置系统,支持:Etd、Consul、Nacos……
sql2orm 用于把数据库的表结构导入,并且生成为 ORM 代码,支持:ENT、GORM……
sql2proto 用于把数据的表结构导入,并且生成 gRPC、REST 的 Protobuf 代码。
sql2kratos 用于把数据的表结构导入,并且生成一整套的 Kratos 服务代码。
项目代码地址:
cfgexp
该工具将本地配置文件导出到 Consul 或 Etcd 等远程配置系统,从而更轻松地管理分布式系统中的配置。
现在已经支持的远程配置系统有:
Etcd
Consul
Nacos
如何安装
go install github.com/tx7do/kratos-cli/config-exporter/cmd/cfgexp@latest
复制代码
如何使用
Config Exporter is a tool to export configuration from remote services like Consul or Etcd to local files.
Usage: cfgexp [flags]
Flags: -a, --addr string remote config service address (default "127.0.0.1:8500") -e, --env string environment name, like dev, test, prod, etc. (default "dev") -g, --group string group name, this name is used to key prefix in remote config service (default "DEFAULT_GROUP") -h, --help help for cfgexp -n, --ns string namespace ID, used for Nacos (default "public") -p, --proj string project name, this name is used to key prefix in remote config service -r, --root string project root dir (default "./") -t, --type string remote config service name (consul, etcd, etc.) (default "consul")
复制代码
示例
Etcd
cfgexp \ -t "etcd" \ -a "localhost:2379" \ -p "go_wind_admin"
复制代码
consul
cfgexp \ -t "consul" \ -a "localhost:8500" \ -p "go_wind_admin"
复制代码
Nacos
cfgexp \ -t "nacos" \ -a "localhost:8848" \ -p "go_wind_admin" \ -n "public" \ -e "dev" \ -g "DEFAULT_GROUP"
复制代码
sql2orm
该工具导入 SQL 数据库的表结构,并生成用于 Kratos 微服务的 ORM 代码。
支持的 ORM:
ent
GORM
如何安装
go install github.com/tx7do/kratos-cli/sql-orm/cmd/sql2orm@latest
复制代码
如何使用
sql2orm is a tool to generate ORM code from SQL database schemas.
Usage: sql2orm [flags]
Flags: -d, --dao-path string output path for DAO code (for gorm) (default "./daos/") -v, --drv string Database driver name to use (mysql, postgres, sqlite...) (default "mysql") -n, --dsn string Data source name (connection information), for example: "mysql://user:pass@tcp(localhost:3306)/dbname" "postgres://user:pass@host:port/dbname" -e, --exclude-tables strings comma-separated list of tables to exclude -h, --help help for sql2orm -o, --orm string ORM type to use (ent, gorm) (default "ent") -s, --schema-path string output path for schema (default "./ent/schema/") -t, --tables strings comma-separated list of tables to inspect (all if empty)
复制代码
示例
Ent
sql2orm \ --orm "ent" \ --dsn "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \ --schema-path "./ent/schema"
复制代码
GORM
sql2orm \ --orm "gorm" \ --drv "postgres" \ --dsn "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \ --schema-path "./daos/models" \ --dao-path "./daos/"
复制代码
sql2proto
该工具导入 SQL 数据库的表结构,并生成用于 Kratos 微服务的 Protobuf 代码。
如何安装
go install github.com/tx7do/kratos-cli/sql-proto/cmd/sql2proto@latest
复制代码
如何使用
sql2proto is a tool to import SQL database schema and generate Protobuf code.
Usage: sql2proto [flags]
Flags: -n, --dsn string Data source name (connection information), for example: "mysql://user:pass@tcp(localhost:3306)/dbname" "postgres://user:pass@host:port/dbname" -e, --excludes strings comma-separated list of tables to exclude -h, --help help for sql2proto -i, --includes strings comma-separated list of tables to inspect (all if empty) -m, --module string module name for the generated code, e.g., 'admin' (default "admin") -o, --output string output path for protobuf schema files (default "./api/protos/") -s, --src-module string Source module name, for REST service generate, e.g., "admin" (default "user") -t, --type string generate RPC service type, "rest" for REST service, "grpc" for gRPC service (default "grpc") -v, --version string Version of the module, e.g., 'v1' (default "v1")
复制代码
示例
生成 gRPC 服务的 Proto:
sql2proto \ -n "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \ -o "./api/protos" \ -t "grpc" \ -m "user"
复制代码
生成 REST 服务的 Proto:
sql2proto \ -n "mysql://root:pass@localhost:3306/test" \ -o "./api/protos" \ -t "rest" \ -m "admin" \ -s "user"
复制代码
sql2kratos
该工具导入 SQL 数据库的表结构,并生成 Kratos 微服务代码。
如何安装
go install github.com/tx7do/kratos-cli/sql-kratos/cmd/sql2kratos@latest
复制代码
如何使用
sql2kratos imports the SQL database schemas and generates Kratos microservice code.
Usage: sql2kratos [flags]
Flags: -n, --dsn string Data source name (connection information), for example: "mysql://user:pass@tcp(localhost:3306)/dbname" "postgres://user:pass@host:port/dbname" -e, --excludes strings comma-separated list of tables to exclude -l, --gen-data enable generate data package code (default true) -k, --gen-main enable generate main package code (default true) -z, --gen-orm enable generate ORM code (default true) -q, --gen-proto enable generate protobuf schema files (default true) -w, --gen-srv enable generate server package code (default true) -a, --gen-svc enable generate service package code (default true) -h, --help help for sql2kratos -i, --includes strings comma-separated list of tables to inspect (all if empty) -m, --module string Target module name for the generated code, e.g., 'admin' (default "admin") -r, --orm string ORM type to use (ent, gorm) (default "ent") -o, --output string output path for protobuf schema files (default "./api/protos/") -p, --project string Project name for the generated code, e.g., 'go-wind-admin' (default "go-wind-admin") -x, --repo use repository pattern (default true) -g, --servers strings comma-separated list of servers to generate, e.g., "grpc,rest" (default [grpc]) -c, --service string Service name for the generated code, e.g., 'user' (default "user") -s, --src-module string Source module name, for REST service generate, e.g., "admin" (default "user") -v, --version string Version of the module, e.g., 'v1' (default "v1")
复制代码
示例
gRPC 服务代码:
sql2kratos \ -p "go-wind-admin" \ -n "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \ -r "ent" \ -o "." \ -m "user" \ -c "user" \ -g "grpc"
复制代码
REST 服务代码:
sql2kratos \ -p "go-wind-admin" \ -n "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \ -r "ent" \ -o "." \ -s "user" \ -m "admin" \ -c "admin" \ -g "rest" \ -x=false \ -z=false \ -l=false
复制代码
项目代码
划线
评论
复制
发布于: 刚刚阅读数: 2
版权声明: 本文为 InfoQ 作者【喵个咪】的原创文章。
原文链接:【http://xie.infoq.cn/article/0b8a30ea0127ffb6e5a3ce262】。文章转载请联系作者。
喵个咪
关注
还未添加个人签名 2025-12-16 加入
还未添加个人简介







评论