写点什么

开箱即用的 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
用户头像

喵个咪

关注

还未添加个人签名 2025-12-16 加入

还未添加个人简介

评论

发布
暂无评论
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:代码生成工具集_Go_喵个咪_InfoQ写作社区