@ -590,11 +590,26 @@ func recreateTable(sess *xorm.Session, bean interface{}) error {
return err
return err
}
}
if err := sess . Table ( tempTableName ) . DropIndexes ( bean ) ; err != nil {
log . Error ( "Unable to drop indexes on temporary table %s. Error: %v" , tempTableName , err )
return err
}
// SQLite and MySQL will move all the constraints from the temporary table to the new table
// SQLite and MySQL will move all the constraints from the temporary table to the new table
if _ , err := sess . Exec ( fmt . Sprintf ( "ALTER TABLE `%s` RENAME TO `%s`" , tempTableName , tableName ) ) ; err != nil {
if _ , err := sess . Exec ( fmt . Sprintf ( "ALTER TABLE `%s` RENAME TO `%s`" , tempTableName , tableName ) ) ; err != nil {
log . Error ( "Unable to rename %s to %s. Error: %v" , tempTableName , tableName , err )
log . Error ( "Unable to rename %s to %s. Error: %v" , tempTableName , tableName , err )
return err
return err
}
}
if err := sess . Table ( tableName ) . CreateIndexes ( bean ) ; err != nil {
log . Error ( "Unable to recreate indexes on table %s. Error: %v" , tableName , err )
return err
}
if err := sess . Table ( tableName ) . CreateUniques ( bean ) ; err != nil {
log . Error ( "Unable to recreate uniques on table %s. Error: %v" , tableName , err )
return err
}
case setting . Database . UsePostgreSQL :
case setting . Database . UsePostgreSQL :
var originalSequences [ ] string
var originalSequences [ ] string
type sequenceData struct {
type sequenceData struct {