From 821184c20357f32cc8eea6a02443f66f02461da1 Mon Sep 17 00:00:00 2001 From: Lanre Adelowo Date: Wed, 24 Apr 2019 18:43:38 +0100 Subject: [PATCH] Drop is_bare IDX only when it exists for MySQL and MariaDB (#6736) * Drop is_bare IDX only when it exists * show indexes only on mysql or mariadb --- models/migrations/v78.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/models/migrations/v78.go b/models/migrations/v78.go index 382fd9e795..b0c7bfb6e3 100644 --- a/models/migrations/v78.go +++ b/models/migrations/v78.go @@ -33,9 +33,19 @@ func renameRepoIsBareToIsEmpty(x *xorm.Engine) error { _, err = sess.Exec("DROP INDEX IF EXISTS IDX_repository_is_bare") } else if models.DbCfg.Type == core.MSSQL { _, err = sess.Exec("DROP INDEX IF EXISTS IDX_repository_is_bare ON repository") + } else if models.DbCfg.Type == core.MYSQL { + indexes, err := sess.QueryString(`SHOW INDEX FROM repository WHERE KEY_NAME = 'IDX_repository_is_bare'`) + if err != nil { + return err + } + + if len(indexes) >= 1 { + _, err = sess.Exec("DROP INDEX IDX_repository_is_bare ON repository") + } } else { _, err = sess.Exec("DROP INDEX IDX_repository_is_bare ON repository") } + if err != nil { return fmt.Errorf("Drop index failed: %v", err) }