|
- package models
-
- import (
- "fmt"
-
- "code.gitea.io/gitea/modules/log"
- "xorm.io/xorm"
- )
-
- type CustomMigration struct {
- Description string
- Migrate func(*xorm.Engine) error
- }
-
- type CustomMigrationStatic struct {
- Description string
- Migrate func(*xorm.Engine, *xorm.Engine) error
- }
-
- var customMigrations = []CustomMigration{
- {"Custom v1 Topic struct change to support chinese", syncTopicStruct},
- }
-
- var customMigrationsStatic = []CustomMigrationStatic{
- {"Delete zuzhi user history data ", deleteNotDisplayUser},
- }
-
- func MigrateCustom(x *xorm.Engine) {
-
- for _, m := range customMigrations {
- log.Info("Migration: %s", m.Description)
- if err := m.Migrate(x); err != nil {
-
- log.Error("Migration: %v", err)
-
- }
- }
-
- }
-
- func MigrateCustomStatic(x *xorm.Engine, static *xorm.Engine) {
- for _, m := range customMigrationsStatic {
- log.Info("Migration: %s", m.Description)
- if err := m.Migrate(x, static); err != nil {
-
- log.Error("Migration: %v", err)
-
- }
- }
- }
-
- func syncTopicStruct(x *xorm.Engine) error {
-
- query := "ALTER TABLE topic ALTER COLUMN name TYPE varchar(105);"
-
- _, err := x.Exec(query)
- return err
- }
-
- func deleteNotDisplayUser(x *xorm.Engine, static *xorm.Engine) error {
-
- sess := x.NewSession()
- defer sess.Close()
- sess.Select("`user`.*").Table("user").Where("type=1")
- userList := make([]*User, 0)
- log.Info("delete zuzi user size=" + fmt.Sprint(len(userList)))
- for i, userRecord := range userList {
- log.Info("delete zuzi user, i=" + fmt.Sprint(i) + " userName=" + userRecord.Name)
- deleteSql := "delete from user_business_analysis where id=" + fmt.Sprint(userRecord.ID) + " and name='" + userRecord.Name + "'"
- static.Exec(deleteSql)
- }
-
- return nil
- }
|