Generate caches that support custom key prefix. (#4643)

This commit is contained in:
kesonan
2025-02-12 23:31:30 +08:00
committed by GitHub
parent 48d0709ca6
commit 7a4818da59
9 changed files with 60 additions and 45 deletions

View File

@@ -50,6 +50,8 @@ var (
VarBoolStrict bool
// VarStringSliceIgnoreColumns represents the columns which are ignored.
VarStringSliceIgnoreColumns []string
// VarStringCachePrefix describes the prefix of cache.
VarStringCachePrefix string
)
var errNotMatched = errors.New("sql not matched")
@@ -57,6 +59,9 @@ var errNotMatched = errors.New("sql not matched")
// MysqlDDL generates model code from ddl
func MysqlDDL(_ *cobra.Command, _ []string) error {
migrationnotes.BeforeCommands(VarStringDir, VarStringStyle)
if VarBoolCache && len(VarStringCachePrefix) == 0 {
return errors.New("cache prefix is empty")
}
src := VarStringSrc
dir := VarStringDir
cache := VarBoolCache
@@ -89,6 +94,7 @@ func MysqlDDL(_ *cobra.Command, _ []string) error {
database: database,
strict: VarBoolStrict,
ignoreColumns: mergeColumns(VarStringSliceIgnoreColumns),
prefix: VarStringCachePrefix,
}
return fromDDL(arg)
}
@@ -96,6 +102,9 @@ func MysqlDDL(_ *cobra.Command, _ []string) error {
// MySqlDataSource generates model code from datasource
func MySqlDataSource(_ *cobra.Command, _ []string) error {
migrationnotes.BeforeCommands(VarStringDir, VarStringStyle)
if VarBoolCache && len(VarStringCachePrefix) == 0 {
return errors.New("cache prefix is empty")
}
url := strings.TrimSpace(VarStringURL)
dir := strings.TrimSpace(VarStringDir)
cache := VarBoolCache
@@ -130,6 +139,7 @@ func MySqlDataSource(_ *cobra.Command, _ []string) error {
idea: idea,
strict: VarBoolStrict,
ignoreColumns: mergeColumns(VarStringSliceIgnoreColumns),
prefix: VarStringCachePrefix,
}
return fromMysqlDataSource(arg)
}
@@ -225,6 +235,7 @@ type ddlArg struct {
database string
strict bool
ignoreColumns []string
prefix string
}
func fromDDL(arg ddlArg) error {
@@ -243,7 +254,7 @@ func fromDDL(arg ddlArg) error {
return errNotMatched
}
generator, err := gen.NewDefaultGenerator(arg.dir, arg.cfg,
generator, err := gen.NewDefaultGenerator(arg.prefix, arg.dir, arg.cfg,
gen.WithConsoleOption(log), gen.WithIgnoreColumns(arg.ignoreColumns))
if err != nil {
return err
@@ -266,6 +277,7 @@ type dataSourceArg struct {
cache, idea bool
strict bool
ignoreColumns []string
prefix string
}
func fromMysqlDataSource(arg dataSourceArg) error {
@@ -318,7 +330,7 @@ func fromMysqlDataSource(arg dataSourceArg) error {
return errors.New("no tables matched")
}
generator, err := gen.NewDefaultGenerator(arg.dir, arg.cfg,
generator, err := gen.NewDefaultGenerator(arg.prefix, arg.dir, arg.cfg,
gen.WithConsoleOption(log), gen.WithIgnoreColumns(arg.ignoreColumns))
if err != nil {
return err
@@ -369,7 +381,7 @@ func fromPostgreSqlDataSource(url string, pattern pattern, dir, schema string, c
return errors.New("no tables matched")
}
generator, err := gen.NewDefaultGenerator(dir, cfg, gen.WithConsoleOption(log), gen.WithPostgreSql(), gen.WithIgnoreColumns(ignoreColumns))
generator, err := gen.NewDefaultGenerator("", dir, cfg, gen.WithConsoleOption(log), gen.WithPostgreSql(), gen.WithIgnoreColumns(ignoreColumns))
if err != nil {
return err
}