go-kratos is a modern web framework for building microservices in Go. This CLI tool provides a convenient way to manage and interact with Kratos projects.
| CMD | Description |
|---|---|
| cfgexp | This tool exports local configuration files to remote configuration systems like Consul or Etcd, making it easier to manage configurations in distributed systems. |
| sql2orm | This tool imports the SQL database schemas and generates ORM code for use in Kratos microservices, supporting both ent and gorm ORMs. |
| sql2proto | This tool imports the SQL database schemas and generates Protobuf code for use in Kratos microservices. |
| sql2kratos | This tool imports the SQL database schemas and generates Kratos microservice code. |
This tool exports local configuration files to remote configuration systems like Consul or Etcd, making it easier to manage configurations in distributed systems.
Support Remote Config Systems Exporter for Kratos CLI:
- Consul
- Etcd
go install github.com/tx7do/kratos-cli/config-exporter/cmd/cfgexp@latestConfig 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")for etcd remote config service:
cfgexp \
-t "etcd" \
-a "localhost:2379" \
-p "kratos_admin"for consul remote config service:
cfgexp \
-t "consul" \
-a "localhost:8500" \
-p "kratos_admin"for nacos remote config service:
cfgexp \
-t "nacos" \
-a "localhost:8848" \
-p "kratos_admin" \
-n "public" \
-e "dev" \
-g "DEFAULT_GROUP"This tool imports the SQL database schemas and generates ORM code for use in Kratos microservices, supporting both ent
and gorm ORMs.
go install github.com/tx7do/kratos-cli/sql-orm/cmd/sql2orm@latestsql2orm 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)for ent ORM:
sql2orm \
--orm "ent" \
--dsn "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \
--schema-path "./ent/schema"for gorm ORM:
sql2orm \
--orm "gorm" \
--drv "postgres" \
--dsn "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \
--schema-path "./daos/models" \
--dao-path "./daos/"This tool imports the SQL database schemas and generates Protobuf code for use in Kratos microservices.
go install github.com/tx7do/kratos-cli/sql-proto/cmd/sql2proto@latestsql2proto 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")generate gRPC service from PostgreSQL database schema:
sql2proto \
-n "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \
-o "./api/protos" \
-t "grpc" \
-m "user"generate REST service from MySQL database schema:
sql2proto \
-n "mysql://root:pass@localhost:3306/test" \
-o "./api/protos" \
-t "rest" \
-m "admin" \
-s "user"This tool imports the SQL database schemas and generates Kratos microservice code.
go install github.com/tx7do/kratos-cli/sql-kratos/cmd/sql2kratos@latestsql2kratos 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")generate code for gRPC service:
sql2kratos \
-p "kratos-admin" \
-n "postgres://postgres:pass@localhost:5432/test?sslmode=disable" \
-r "ent" \
-o "." \
-m "user" \
-c "user" \
-g "grpc"generate code for REST service:
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