summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--models/db/convert.go4
-rw-r--r--models/migrations/test/tests.go7
-rw-r--r--tests/integration/migration-test/migration_test.go9
-rw-r--r--tests/test_utils.go3
5 files changed, 17 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index f2fc67dd7c..a7a05b6e61 100644
--- a/Makefile
+++ b/Makefile
@@ -191,7 +191,7 @@ SWAGGER_NEWLINE_COMMAND := -e '$$a\'
SWAGGER_SPEC_BRANDING := s|Gitea API|Forgejo API|g
TEST_MYSQL_HOST ?= mysql:3306
-TEST_MYSQL_DBNAME ?= testgitea
+TEST_MYSQL_DBNAME ?= testgitea?multiStatements=true
TEST_MYSQL_USERNAME ?= root
TEST_MYSQL_PASSWORD ?=
TEST_PGSQL_HOST ?= pgsql:5432
diff --git a/models/db/convert.go b/models/db/convert.go
index b8b15382e7..5ebafcf87b 100644
--- a/models/db/convert.go
+++ b/models/db/convert.go
@@ -6,6 +6,7 @@ package db
import (
"fmt"
"strconv"
+ "strings"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
@@ -25,7 +26,8 @@ func ConvertDatabaseTable() error {
return err
}
- _, err = x.Exec(fmt.Sprintf("ALTER DATABASE `%s` CHARACTER SET utf8mb4 COLLATE %s", setting.Database.Name, r.ExpectedCollation))
+ databaseName := strings.SplitN(setting.Database.Name, "?", 2)[0]
+ _, err = x.Exec(fmt.Sprintf("ALTER DATABASE `%s` CHARACTER SET utf8mb4 COLLATE %s", databaseName, r.ExpectedCollation))
if err != nil {
return err
}
diff --git a/models/migrations/test/tests.go b/models/migrations/test/tests.go
index 9b1a373c70..71fa88e6b8 100644
--- a/models/migrations/test/tests.go
+++ b/models/migrations/test/tests.go
@@ -12,6 +12,7 @@ import (
"path"
"path/filepath"
"runtime"
+ "strings"
"testing"
"time"
@@ -198,11 +199,13 @@ func deleteDB() error {
}
defer db.Close()
- if _, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s", setting.Database.Name)); err != nil {
+ databaseName := strings.SplitN(setting.Database.Name, "?", 2)[0]
+
+ if _, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s", databaseName)); err != nil {
return err
}
- if _, err = db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", setting.Database.Name)); err != nil {
+ if _, err = db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", databaseName)); err != nil {
return err
}
return nil
diff --git a/tests/integration/migration-test/migration_test.go b/tests/integration/migration-test/migration_test.go
index e0e5620cd2..0a3b38c987 100644
--- a/tests/integration/migration-test/migration_test.go
+++ b/tests/integration/migration-test/migration_test.go
@@ -14,6 +14,7 @@ import (
"path/filepath"
"regexp"
"sort"
+ "strings"
"testing"
"code.gitea.io/gitea/models/db"
@@ -174,14 +175,16 @@ func restoreOldDB(t *testing.T, version string) bool {
assert.NoError(t, err)
defer db.Close()
- _, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s", setting.Database.Name))
+ databaseName := strings.SplitN(setting.Database.Name, "?", 2)[0]
+
+ _, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s", databaseName))
assert.NoError(t, err)
- _, err = db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", setting.Database.Name))
+ _, err = db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", databaseName))
assert.NoError(t, err)
db.Close()
- db, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?multiStatements=true",
+ db, err = sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s",
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name))
assert.NoError(t, err)
defer db.Close()
diff --git a/tests/test_utils.go b/tests/test_utils.go
index a607194bef..082785b75c 100644
--- a/tests/test_utils.go
+++ b/tests/test_utils.go
@@ -12,6 +12,7 @@ import (
"path"
"path/filepath"
"runtime"
+ "strings"
"testing"
"time"
@@ -106,7 +107,7 @@ func InitTest(requireGitea bool) {
if err != nil {
log.Fatal("sql.Open: %v", err)
}
- if _, err = db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", setting.Database.Name)); err != nil {
+ if _, err = db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", strings.SplitN(setting.Database.Name, "?", 2)[0])); err != nil {
log.Fatal("db.Exec: %v", err)
}
case setting.Database.Type.IsPostgreSQL():