fix(ci): the local time zone is different from the database time causing CI to fail

This commit is contained in:
luoji 2024-11-27 15:18:18 +08:00
parent ed17be6735
commit 096563cbf1
2 changed files with 16 additions and 3 deletions

View File

@ -233,8 +233,8 @@ func (statement *Statement) writeForUpdate(w *builder.BytesWriter) error {
return nil return nil
} }
if statement.dialect.URI().DBType != schemas.MYSQL { if statement.dialect.URI().DBType != schemas.MYSQL && statement.dialect.URI().DBType != schemas.POSTGRES {
return errors.New("only support mysql for update") return errors.New("only support mysql and postgres for update")
} }
_, err := fmt.Fprint(w, " FOR UPDATE") _, err := fmt.Fprint(w, " FOR UPDATE")
return err return err

View File

@ -12,6 +12,7 @@ import (
"os" "os"
"strings" "strings"
"testing" "testing"
"time"
"xorm.io/xorm/v2" "xorm.io/xorm/v2"
@ -93,7 +94,6 @@ func createEngine(dbType, connStr string) error {
} }
} }
db.Close() db.Close()
*ignoreSelectUpdate = true
case schemas.MYSQL: case schemas.MYSQL:
db, err := sql.Open(dbType, strings.ReplaceAll(connStr, "xorm_test", "mysql")) db, err := sql.Open(dbType, strings.ReplaceAll(connStr, "xorm_test", "mysql"))
if err != nil { if err != nil {
@ -115,6 +115,19 @@ func createEngine(dbType, connStr string) error {
} }
testEngine, err = xorm.NewEngine(dbType, connStr) 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 { } else {
testEngine, err = xorm.NewEngineGroup(dbType, strings.Split(connStr, *splitter)) testEngine, err = xorm.NewEngineGroup(dbType, strings.Split(connStr, *splitter))
if dbType != "mysql" { if dbType != "mysql" {