code.gitea.io/gitea@v1.21.7/models/migrations/v1_21/v274.go (about)

     1  // Copyright 2023 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package v1_21 //nolint
     5  import (
     6  	"time"
     7  
     8  	"code.gitea.io/gitea/modules/timeutil"
     9  
    10  	"xorm.io/xorm"
    11  )
    12  
    13  func AddExpiredUnixColumnInActionArtifactTable(x *xorm.Engine) error {
    14  	type ActionArtifact struct {
    15  		ExpiredUnix timeutil.TimeStamp `xorm:"index"` // time when the artifact will be expired
    16  	}
    17  	if err := x.Sync(new(ActionArtifact)); err != nil {
    18  		return err
    19  	}
    20  	return updateArtifactsExpiredUnixTo90Days(x)
    21  }
    22  
    23  func updateArtifactsExpiredUnixTo90Days(x *xorm.Engine) error {
    24  	sess := x.NewSession()
    25  	defer sess.Close()
    26  
    27  	if err := sess.Begin(); err != nil {
    28  		return err
    29  	}
    30  	expiredTime := time.Now().AddDate(0, 0, 90).Unix()
    31  	if _, err := sess.Exec(`UPDATE action_artifact SET expired_unix=? WHERE status='2' AND expired_unix is NULL`, expiredTime); err != nil {
    32  		return err
    33  	}
    34  
    35  	return sess.Commit()
    36  }