From 096563cbf1035312ef287d581350bcb2f84a2824 Mon Sep 17 00:00:00 2001 From: luoji Date: Wed, 27 Nov 2024 15:18:18 +0800 Subject: [PATCH] fix(ci): the local time zone is different from the database time causing CI to fail --- internal/statements/query.go | 4 ++-- tests/tests.go | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/internal/statements/query.go b/internal/statements/query.go index 092c5cf3..9dd0857f 100644 --- a/internal/statements/query.go +++ b/internal/statements/query.go @@ -233,8 +233,8 @@ func (statement *Statement) writeForUpdate(w *builder.BytesWriter) error { return nil } - if statement.dialect.URI().DBType != schemas.MYSQL { - return errors.New("only support mysql for update") + if statement.dialect.URI().DBType != schemas.MYSQL && statement.dialect.URI().DBType != schemas.POSTGRES { + return errors.New("only support mysql and postgres for update") } _, err := fmt.Fprint(w, " FOR UPDATE") return err diff --git a/tests/tests.go b/tests/tests.go index 290af0a7..f7706096 100644 --- a/tests/tests.go +++ b/tests/tests.go @@ -12,6 +12,7 @@ import ( "os" "strings" "testing" + "time" "xorm.io/xorm/v2" @@ -93,7 +94,6 @@ func createEngine(dbType, connStr string) error { } } db.Close() - *ignoreSelectUpdate = true case schemas.MYSQL: db, err := sql.Open(dbType, strings.ReplaceAll(connStr, "xorm_test", "mysql")) if err != nil { @@ -115,6 +115,19 @@ func createEngine(dbType, connStr string) error { } testEngine, err = xorm.NewEngine(dbType, connStr) + if err != nil { + return err + } + + var timeZone string + _, err = testEngine.SQL("SHOW TIMEZONE").Get(&timeZone) + if err != nil { + return err + } + + if strings.EqualFold(timeZone, "UTC") { + testEngine.SetTZDatabase(time.UTC) + } } else { testEngine, err = xorm.NewEngineGroup(dbType, strings.Split(connStr, *splitter)) if dbType != "mysql" {