@ -5,6 +5,7 @@
package migrations
package migrations
import (
import (
"context"
"fmt"
"fmt"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/setting"
@ -19,6 +20,22 @@ func renameTaskErrorsToMessage(x *xorm.Engine) error {
Status int ` xorm:"index" `
Status int ` xorm:"index" `
}
}
// This migration maybe rerun so that we should check if it has been run
messageExist , err := x . Dialect ( ) . IsColumnExist ( x . DB ( ) , context . Background ( ) , "task" , "message" )
if err != nil {
return err
}
if messageExist {
errorsExist , err := x . Dialect ( ) . IsColumnExist ( x . DB ( ) , context . Background ( ) , "task" , "errors" )
if err != nil {
return err
}
if ! errorsExist {
return nil
}
}
sess := x . NewSession ( )
sess := x . NewSession ( )
defer sess . Close ( )
defer sess . Close ( )
if err := sess . Begin ( ) ; err != nil {
if err := sess . Begin ( ) ; err != nil {
@ -29,6 +46,13 @@ func renameTaskErrorsToMessage(x *xorm.Engine) error {
return fmt . Errorf ( "error on Sync2: %v" , err )
return fmt . Errorf ( "error on Sync2: %v" , err )
}
}
if messageExist {
// if both errors and message exist, drop message at first
if err := dropTableColumns ( sess , "task" , "message" ) ; err != nil {
return err
}
}
switch {
switch {
case setting . Database . UseMySQL :
case setting . Database . UseMySQL :
if _ , err := sess . Exec ( "ALTER TABLE `task` CHANGE errors message text" ) ; err != nil {
if _ , err := sess . Exec ( "ALTER TABLE `task` CHANGE errors message text" ) ; err != nil {