Skip to content

Commit 1f1a85c

Browse files
committed
feat(builder): set gorm silent log mod default
1 parent 1f5ad2d commit 1f1a85c

File tree

2 files changed

+29
-15
lines changed

2 files changed

+29
-15
lines changed

gmm/builder.go

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,14 @@ import (
1919

2020
// GMMBuilder struct for building and managing the mock MySQL server
2121
type GMMBuilder struct {
22-
dbName string
23-
port int
24-
server *server.Server
25-
sqlDB *sql.DB
26-
gormDB *gorm.DB
27-
err error
28-
started atomic.Bool
22+
dbName string
23+
port int
24+
server *server.Server
25+
sqlDB *sql.DB
26+
gormDB *gorm.DB
27+
err error
28+
started atomic.Bool
29+
logSilent bool
2930

3031
tables []schema.Tabler
3132
models []schema.Tabler
@@ -37,11 +38,12 @@ type GMMBuilder struct {
3738
// if db name is not provided, gmm would generate a random db name.
3839
func Builder(db ...string) *GMMBuilder {
3940
b := &GMMBuilder{
40-
tables: make([]schema.Tabler, 0),
41-
models: make([]schema.Tabler, 0),
42-
sqlStmts: make([]string, 0),
43-
sqlFiles: make([]string, 0),
44-
started: atomic.Bool{},
41+
tables: make([]schema.Tabler, 0),
42+
models: make([]schema.Tabler, 0),
43+
sqlStmts: make([]string, 0),
44+
sqlFiles: make([]string, 0),
45+
started: atomic.Bool{},
46+
logSilent: true,
4547
}
4648
dbName := "gmm-test-db-" + uuid.NewString()[:6]
4749
if len(db) > 0 {
@@ -58,6 +60,12 @@ func (b *GMMBuilder) Port(port int) *GMMBuilder {
5860
return b
5961
}
6062

63+
// LogSilent sets the log mode for the MySQL server, default is silent mode.
64+
func (b *GMMBuilder) LogSilent(logSilent bool) *GMMBuilder {
65+
b.logSilent = logSilent
66+
return b
67+
}
68+
6169
// Build initializes and starts the MySQL server, returns handles to SQL and Gorm DB
6270
func (b *GMMBuilder) Build() (sDB *sql.DB, gDB *gorm.DB, shutdown func(), err error) {
6371
if b.err != nil {
@@ -104,7 +112,7 @@ func (b *GMMBuilder) Build() (sDB *sql.DB, gDB *gorm.DB, shutdown func(), err er
104112
}
105113

106114
// Create client and connect to server
107-
b.sqlDB, b.gormDB, err = createMySQLClient(b.port, b.dbName)
115+
b.sqlDB, b.gormDB, err = createMySQLClient(b.port, b.dbName, b.logSilent)
108116
if err != nil {
109117
b.err = fmt.Errorf("failed to create sql client: %w", err)
110118
return nil, nil, nil, b.err

gmm/client.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,22 @@ import (
66

77
"gorm.io/driver/mysql"
88
"gorm.io/gorm"
9+
"gorm.io/gorm/logger"
910
)
1011

11-
func createMySQLClient(port int, dbName string) (sqlDB *sql.DB, gormDB *gorm.DB, err error) {
12+
func createMySQLClient(port int, dbName string, logSilent bool) (sqlDB *sql.DB, gormDB *gorm.DB, err error) {
1213
dsn := fmt.Sprintf("root@tcp(127.0.0.1:%d)/%s", port, dbName)
1314
sqlDB, err = sql.Open("mysql", dsn)
1415
if err != nil {
1516
return nil, nil, fmt.Errorf("failed to open sql mysql client: %w", err)
1617
}
1718

18-
gormDB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
19+
gormConfig := &gorm.Config{}
20+
if logSilent {
21+
gormConfig.Logger = logger.Default.LogMode(logger.Silent)
22+
}
23+
24+
gormDB, err = gorm.Open(mysql.Open(dsn), gormConfig)
1925
if err != nil {
2026
return nil, nil, fmt.Errorf("failed to open gorm mysql client: %w", err)
2127
}

0 commit comments

Comments
 (0)