upgrade question post time

This commit is contained in:
aichy126 2023-05-08 16:01:57 +08:00
parent eeb67dd21e
commit 58bec8ddd1
2 changed files with 34 additions and 0 deletions

View File

@ -59,6 +59,7 @@ var migrations = []Migration{
NewMigration("add user pin hide features", addRolePinAndHideFeatures, true), NewMigration("add user pin hide features", addRolePinAndHideFeatures, true),
NewMigration("update accept answer rank", updateAcceptAnswerRank, true), NewMigration("update accept answer rank", updateAcceptAnswerRank, true),
NewMigration("update user pin hide features", updateRolePinAndHideFeatures, true), NewMigration("update user pin hide features", updateRolePinAndHideFeatures, true),
NewMigration("update question post time", updateQuestionPostTime, true),
} }
// GetCurrentDBVersion returns the current db version // GetCurrentDBVersion returns the current db version

View File

@ -0,0 +1,33 @@
package migrations
import (
"fmt"
"github.com/answerdev/answer/internal/entity"
"github.com/segmentfault/pacman/log"
"xorm.io/xorm"
)
func updateQuestionPostTime(x *xorm.Engine) error {
questionList := make([]entity.Question, 0)
err := x.Find(&questionList, &entity.Question{})
if err != nil {
return fmt.Errorf("get questions failed: %w", err)
}
for _, item := range questionList {
if item.PostUpdateTime.IsZero() {
if !item.UpdatedAt.IsZero() {
item.PostUpdateTime = item.UpdatedAt
} else if !item.CreatedAt.IsZero() {
item.PostUpdateTime = item.CreatedAt
}
if _, err = x.Update(item, &entity.Question{ID: item.ID}); err != nil {
log.Errorf("update %+v config failed: %s", item, err)
return fmt.Errorf("update question failed: %w", err)
}
}
}
return nil
}