61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
// Copyright 2025 The Forgejo Authors.
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
package v1_23 //nolint
|
|
|
|
import (
|
|
"code.gitea.io/gitea/models/migrations/base"
|
|
|
|
"xorm.io/xorm"
|
|
"xorm.io/xorm/schemas"
|
|
)
|
|
|
|
func GiteaLastDrop(x *xorm.Engine) error {
|
|
tables, err := x.DBMetas()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
sess := x.NewSession()
|
|
defer sess.Close()
|
|
|
|
for _, drop := range []struct {
|
|
table string
|
|
column string
|
|
}{
|
|
{"badge", "slug"},
|
|
{"oauth2_application", "skip_secondary_authorization"},
|
|
{"repository", "default_wiki_branch"},
|
|
{"repo_unit", "everyone_access_mode"},
|
|
{"protected_branch", "can_force_push"},
|
|
{"protected_branch", "enable_force_push_allowlist"},
|
|
{"protected_branch", "force_push_allowlist_user_i_ds"},
|
|
{"protected_branch", "force_push_allowlist_team_i_ds"},
|
|
{"protected_branch", "force_push_allowlist_deploy_keys"},
|
|
} {
|
|
var table *schemas.Table
|
|
found := false
|
|
|
|
for _, table = range tables {
|
|
if table.Name == drop.table {
|
|
found = true
|
|
break
|
|
}
|
|
}
|
|
|
|
if !found {
|
|
continue
|
|
}
|
|
|
|
if table.GetColumn(drop.column) == nil {
|
|
continue
|
|
}
|
|
|
|
if err := base.DropTableColumns(sess, drop.table, drop.column); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
|
|
return sess.Commit()
|
|
}
|