diff --git a/pkg/services/sqlstore/sqlstore.go b/pkg/services/sqlstore/sqlstore.go index 9533aa6c512..4e314f21ec7 100644 --- a/pkg/services/sqlstore/sqlstore.go +++ b/pkg/services/sqlstore/sqlstore.go @@ -289,7 +289,7 @@ func (ss *SQLStore) initEngine(engine *xorm.Engine) error { } if engine == nil { // Ensure that parseTime is enabled for MySQL - if ss.features.IsEnabledGlobally(featuremgmt.FlagMysqlParseTime) && ss.dbCfg.Type == migrator.MySQL && !strings.Contains(ss.dbCfg.ConnectionString, "parseTime=") { + if ss.features.IsEnabledGlobally(featuremgmt.FlagMysqlParseTime) && strings.Contains(ss.dbCfg.Type, migrator.MySQL) && !strings.Contains(ss.dbCfg.ConnectionString, "parseTime=") { if strings.Contains(ss.dbCfg.ConnectionString, "?") { ss.dbCfg.ConnectionString += "&parseTime=true" } else { diff --git a/pkg/services/sqlstore/sqlstore_test.go b/pkg/services/sqlstore/sqlstore_test.go index 439c9f893f2..f08eb345570 100644 --- a/pkg/services/sqlstore/sqlstore_test.go +++ b/pkg/services/sqlstore/sqlstore_test.go @@ -93,6 +93,13 @@ func TestInitEngine_ParseTimeInConnectionString(t *testing.T) { featureEnabled: true, expectedConnection: "user:password@tcp(localhost:3306)/existingparams?collation=utf8mb4_unicode_ci&allowNativePasswords=true&clientFoundRows=true&charset=utf8&parseTime=true", }, + { + name: "MySQL with feature enabled", + connectionString: "mysql://user:password@localhost:3306/existingparams?charset=utf8", + dbType: "mysqlWithHooks", + featureEnabled: true, + expectedConnection: "user:password@tcp(localhost:3306)/existingparams?collation=utf8mb4_unicode_ci&allowNativePasswords=true&clientFoundRows=true&charset=utf8&parseTime=true", + }, { name: "MySQL with feature disabled", connectionString: "mysql://user:password@localhost:3306/disabled",