github.com/sharovik/devbot@v1.0.1-0.20240308094637-4a0387c40516/scripts/update/migrations/3-remove-unique-index-question.go (about) 1 package migrations 2 3 import ( 4 "github.com/sharovik/devbot/internal/container" 5 "github.com/sharovik/devbot/internal/dto/databasedto" 6 "github.com/sharovik/orm/clients" 7 "github.com/sharovik/orm/dto" 8 ) 9 10 type RemoveUniqueIndexMigration struct { 11 Client clients.BaseClientInterface 12 } 13 14 func (m RemoveUniqueIndexMigration) SetClient(client clients.BaseClientInterface) { 15 m.Client = client 16 } 17 18 func (m RemoveUniqueIndexMigration) GetName() string { 19 return "remove-unique-index-question" 20 } 21 22 func (m RemoveUniqueIndexMigration) Execute() error { 23 client := container.C.Dictionary.GetDBClient() 24 25 q := new(clients.Query). 26 Alter(databasedto.QuestionsModel). 27 DropIndex(dto.Index{ 28 Name: "questions_question_uindex", 29 }) 30 _, err := client.Execute(q) 31 if err != nil { 32 return err 33 } 34 35 q = new(clients.Query). 36 Alter(databasedto.QuestionsModel).AddIndex(dto.Index{ 37 Name: "questions_question_uindex", 38 Target: databasedto.QuestionsModel.GetTableName(), 39 Key: "question", 40 Unique: false, 41 }) 42 _, err = client.Execute(q) 43 if err != nil { 44 return err 45 } 46 47 return nil 48 }