package model import ( "fmt" ) //类型迁移 func migration() { //自动迁移模式 addTable(&ApprovalTypeGroup{}) addTable(&BundlePayPrice{}) addTable(&ApprovalCopy{}) addTable(&ExhibitionReward{}) addTable(&ApprovalReward{}) addTable(&FinancialFormSetting{}) // 财务报表审批 设置信息 addTable(&FinancialForm{}) // 财务报表审批 addTable(&ApprovalOA{}) // OA //增加字段 addColumn(&ApprovalType{}, "is_normal") addColumn(&ApprovalType{}, "key_json") addColumn(&ApprovalType{}, "group_id") addColumn(&Exhibition{}, "apply_id") addColumn(&ApprovalExhibition{}, "package_id") addColumn(&ApprovalExhibition{}, "show_date") addColumn(&ApprovalWork{}, "artist_uid") addColumn(&ApprovalWork{}, "show_seq") addColumn(&Work{}, "artist_uid") addColumn(&Approval{}, "value_json") addColumn(&BundlePayPrice{}, "status") addColumn(&BundlePayPrice{}, "artist_name") addColumn(&ApprovalExhibition{}, "art_exhibition_detail") addColumn(&ApprovalExhibition{}, "artworks") addColumn(&ApprovalReward{}, "total_price") var num int64 var list []*Approval DB.Model(&ApprovalCopy{}).Count(&num) if num > 0 { return } //同步更新数据 DB.Model(&Approval{}).Find(&list) if len(list) == 0 { return } for _, t := range list { for _, tt := range t.CopyUsers { status := 1 if tt.IsViewed == true { status = 2 } temp := &ApprovalCopy{ ApprovalID: t.ID, UserId: tt.ID, Name: tt.Name, Status: uint64(status), } var n int64 DB.Model(&ApprovalCopy{}).Where(temp).Count(&n) if n > 0 { continue } DB.Model(&ApprovalCopy{}).Create(&temp) } } } //数据迁移 func addColumn(dst interface{}, column string) { exist := DB.Migrator().HasColumn(dst, column) if !exist { err := DB.Migrator().AddColumn(dst, column) if err != nil { fmt.Println(err.Error()) } } return } func addTable(dst interface{}) { if DB.Migrator().HasTable(dst) == false { _ = DB.Migrator().CreateTable(dst) } return }