code.gitea.io/gitea@v1.22.3/models/migrations/v1_22/v287.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package v1_22 //nolint 5 6 import ( 7 "xorm.io/xorm" 8 ) 9 10 type BadgeUnique struct { 11 ID int64 `xorm:"pk autoincr"` 12 Slug string `xorm:"UNIQUE"` 13 } 14 15 func (BadgeUnique) TableName() string { 16 return "badge" 17 } 18 19 func UseSlugInsteadOfIDForBadges(x *xorm.Engine) error { 20 type Badge struct { 21 Slug string 22 } 23 24 err := x.Sync(new(Badge)) 25 if err != nil { 26 return err 27 } 28 29 sess := x.NewSession() 30 defer sess.Close() 31 if err := sess.Begin(); err != nil { 32 return err 33 } 34 35 _, err = sess.Exec("UPDATE `badge` SET `slug` = `id` Where `slug` IS NULL") 36 if err != nil { 37 return err 38 } 39 40 err = sess.Sync(new(BadgeUnique)) 41 if err != nil { 42 return err 43 } 44 45 return sess.Commit() 46 }