开箱即用的GO后台管理系统 Kratos Admin - 代码生成工具集

开箱即用的GO后台管理系统 Kratos Admin - 代码生成工具集

我们为go-kratos-admin这个项目打造了一个代码生成工具集。

  • cfgexp 用于将服务本地配置导入到远程配置系统,支持:Etd、Consul、Nacos......
  • sql2orm 用于把数据库的表结构导入,并且生成为ORM代码,支持:ENT、GORM......
  • sql2proto 用于把数据的表结构导入,并且生成gRPC、REST的Protobuf代码。
  • sql2kratos 用于把数据的表结构导入,并且生成一整套的Kratos服务代码。

项目代码地址:

cfgexp

该工具将本地配置文件导出到Consul或Etcd等远程配置系统,从而更轻松地管理分布式系统中的配置。

现在已经支持的远程配置系统有:

  • Etcd
  • Consul
  • Nacos

如何安装

bash 复制代码
go install github.com/tx7do/kratos-cli/config-exporter/cmd/cfgexp@latest

如何使用

bash 复制代码
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

bash 复制代码
cfgexp \
    -t "etcd" \
    -a "localhost:2379" \
    -p "kratos_admin"

consul

bash 复制代码
cfgexp \
    -t "consul" \
    -a "localhost:8500" \
    -p "kratos_admin"

Nacos

bash 复制代码
cfgexp \
    -t "nacos" \
    -a "localhost:8848" \
    -p "kratos_admin" \
    -n "public" \
    -e "dev" \
    -g "DEFAULT_GROUP"

sql2orm

该工具导入 SQL 数据库的表结构,并生成用于 Kratos 微服务的 ORM代码。

支持的ORM:

  • ent
  • GORM

如何安装

bash 复制代码
go install github.com/tx7do/kratos-cli/sql-orm/cmd/sql2orm@latest

如何使用

bash 复制代码
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

bash 复制代码
sql2orm \
  --orm "ent" \
  --dsn "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \
  --schema-path "./ent/schema"

GORM

bash 复制代码
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 代码。

如何安装

bash 复制代码
go install github.com/tx7do/kratos-cli/sql-proto/cmd/sql2proto@latest

如何使用

bash 复制代码
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:

bash 复制代码
sql2proto \
  -n "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \
  -o "./api/protos" \
  -t "grpc" \
  -m "user"

生成REST服务的Proto:

bash 复制代码
sql2proto \
  -n "mysql://root:pass@localhost:3306/test" \
  -o "./api/protos" \
  -t "rest" \
  -m "admin" \
  -s "user"

sql2kratos

该工具导入 SQL 数据库的表结构,并生成 Kratos 微服务代码。

如何安装

bash 复制代码
go install github.com/tx7do/kratos-cli/sql-kratos/cmd/sql2kratos@latest

如何使用

bash 复制代码
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., 'kratos-admin' (default "kratos-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服务代码:

bash 复制代码
sql2kratos \
  -p "kratos-admin" \
  -n "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \
  -r "ent" \
  -o "." \
  -m "user" \
  -c "user" \
  -g "grpc"

REST服务代码:

bash 复制代码
sql2kratos \
  -p "kratos-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

项目代码

相关推荐
Ting-yu17 小时前
SpringCloud快速入门(3)---- 创建微服务项目
java·spring cloud·微服务
Maguyusi18 小时前
Ubuntu26.04 编译 abseil-cpp protobuf v33.6
linux·protobuf·abseil
covco18 小时前
全域矩阵运营系统多租户权限体系架构设计与轻量化落地实践
微服务·矩阵·权限管控
2501_9127840819 小时前
告别“汗水出海”:基于微服务架构的跨境电商系统设计与实现——以Taocarts为例
微服务·云原生·架构·taocarts
狼与自由19 小时前
微服务的演化过程
微服务·云原生·架构
庞轩px20 小时前
第八篇:Spring与微服务——从SpringBoot到SpringCloud的演进
spring boot·spring·微服务·nacos·gateway·sentinel
青槿吖21 小时前
第一篇:Elasticsearch 入门踩坑记:从 “URL 拼写错误” 到跑通第一个搜索服务
大数据·elasticsearch·搜索引擎·spring cloud·微服务·架构·全文检索
驾驭人生1 天前
企业级微服务基础设施 | Docker Compose 9 大中间件 本地私有仓库 一键部署脚本前言
docker·微服务·中间件
aXin_ya1 天前
微服务面试篇1
微服务·面试·架构
星梦清河1 天前
微服务-Elasticsearch02
微服务·架构·jenkins