优化结构

This commit is contained in:
Yvan
2026-08-24 21:50:33 +08:00
parent d3c20c578f
commit 969afee284
20 changed files with 497 additions and 244 deletions
+12 -16
View File
@@ -118,7 +118,7 @@ func databaseDSN(c *config.Database, name string) (string, error) {
return "", fmt.Errorf("unsupported database driver %q", c.Driver)
}
func gormConfig(config *config.Database, appLogger ...*slog.Logger) *gorm.Config {
func gormConfig(config *config.Database, appLogger *slog.Logger) *gorm.Config {
level := logger.Info
switch strings.ToLower(config.LogMode) {
case "silent":
@@ -128,19 +128,15 @@ func gormConfig(config *config.Database, appLogger ...*slog.Logger) *gorm.Config
case "warn":
level = logger.Warn
}
var log *slog.Logger
if len(appLogger) > 0 {
log = appLogger[0]
}
return &gorm.Config{Logger: gormkit.NewLogger(log, level), NamingStrategy: schema.NamingStrategy{TablePrefix: config.Prefix, SingularTable: config.Singular}}
return &gorm.Config{Logger: gormkit.NewLogger(appLogger, level), NamingStrategy: schema.NamingStrategy{TablePrefix: config.Prefix, SingularTable: config.Singular}}
}
func openWithDriver(driver, dsn string, appLogger ...*slog.Logger) (*gorm.DB, error) {
return openWithDriverConfig(driver, dsn, &config.Database{Driver: driver}, appLogger...)
func openWithDriver(driver, dsn string, appLogger *slog.Logger) (*gorm.DB, error) {
return openWithDriverConfig(driver, dsn, &config.Database{Driver: driver}, appLogger)
}
func openWithDriverConfig(driver, dsn string, config *config.Database, appLogger ...*slog.Logger) (*gorm.DB, error) {
gormConfig := gormConfig(config, appLogger...)
func openWithDriverConfig(driver, dsn string, config *config.Database, appLogger *slog.Logger) (*gorm.DB, error) {
gormConfig := gormConfig(config, appLogger)
var db *gorm.DB
var err error
switch normalizedDriver(driver) {
@@ -179,7 +175,7 @@ func openWithDriverConfig(driver, dsn string, config *config.Database, appLogger
return db, nil
}
func openDatabase(c *config.Database, create bool, template string, appLogger ...*slog.Logger) (*gorm.DB, error) {
func openDatabase(c *config.Database, create bool, template string, appLogger *slog.Logger) (*gorm.DB, error) {
driver := normalizedDriver(c.Driver)
if driver == "" {
return nil, fmt.Errorf("unsupported database driver %q", c.Driver)
@@ -192,7 +188,7 @@ func openDatabase(c *config.Database, create bool, template string, appLogger ..
if err = os.MkdirAll(filepath.Dir(dsn), 0o755); err != nil {
return nil, err
}
return openWithDriverConfig(driver, dsn, c, appLogger...)
return openWithDriverConfig(driver, dsn, c, appLogger)
}
if create && driver != "oracle" {
if !databaseNamePattern.MatchString(c.Name) {
@@ -209,7 +205,7 @@ func openDatabase(c *config.Database, create bool, template string, appLogger ..
if err != nil {
return nil, err
}
adminDB, err := openWithDriverConfig(driver, dsn, c, appLogger...)
adminDB, err := openWithDriverConfig(driver, dsn, c, appLogger)
if err != nil {
return nil, fmt.Errorf("connect database server: %w", err)
}
@@ -245,9 +241,9 @@ func openDatabase(c *config.Database, create bool, template string, appLogger ..
if err != nil {
return nil, err
}
return openWithDriverConfig(driver, dsn, c, appLogger...)
return openWithDriverConfig(driver, dsn, c, appLogger)
}
func openFallbackDatabase(appLogger ...*slog.Logger) (*gorm.DB, error) {
return openWithDriver("sqlite", "file:kra-bootstrap?mode=memory&cache=shared", appLogger...)
func openFallbackDatabase(appLogger *slog.Logger) (*gorm.DB, error) {
return openWithDriver("sqlite", "file:kra-bootstrap?mode=memory&cache=shared", appLogger)
}