Skip to content

Commit 9ec505d

Browse files
committed
try to fix flaky mysql test
1 parent 5410305 commit 9ec505d

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

models/db/collation.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ func CheckCollations(x *xorm.Engine) (*CheckCollationsResult, error) {
6868

6969
var candidateCollations []string
7070
if x.Dialect().URI().DBType == schemas.MYSQL {
71-
if _, err = x.SQL("SELECT @@collation_database").Get(&res.DatabaseCollation); err != nil {
71+
_, err = x.SQL("SELECT DEFAULT_COLLATION_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ?", setting.Database.Name).Get(&res.DatabaseCollation)
72+
if err != nil {
7273
return nil, err
7374
}
7475
res.IsCollationCaseSensitive = func(s string) bool {

tests/integration/db_collation_test.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,12 @@ func TestDatabaseCollation(t *testing.T) {
7373

7474
t.Run("Convert tables to utf8mb4_bin", func(t *testing.T) {
7575
defer test.MockVariableValue(&setting.Database.CharsetCollation, "utf8mb4_bin")()
76-
assert.NoError(t, db.ConvertDatabaseTable())
7776
r, err := db.CheckCollations(x)
7877
assert.NoError(t, err)
78+
assert.EqualValues(t, "utf8mb4_bin", r.ExpectedCollation)
79+
assert.NoError(t, db.ConvertDatabaseTable())
80+
r, err = db.CheckCollations(x)
81+
assert.NoError(t, err)
7982
assert.Equal(t, "utf8mb4_bin", r.DatabaseCollation)
8083
assert.True(t, r.CollationEquals(r.ExpectedCollation, r.DatabaseCollation))
8184
assert.Empty(t, r.InconsistentCollationColumns)

0 commit comments

Comments
 (0)