mirror of
https://github.com/go-gitea/gitea.git
synced 2026-07-22 16:35:53 +02:00
Migrations should never use model structs directly, because the model structs can be different in different releases. e.g. if one migration uses "User" model, it works in the early releases, then one day, when the User model changes, the migration breaks because it will use the new (incorrect) User model, it should only use the old User model. The same to "modules/structs". --------- Signed-off-by: wxiaoguang <wxiaoguang@gmail.com> Co-authored-by: delvh <dev.lh@web.de>
55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
// Copyright 2020 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package v1_13
|
|
|
|
import (
|
|
"gitea.dev/modelmigration/base"
|
|
"gitea.dev/modules/timeutil"
|
|
)
|
|
|
|
func AddTimeStamps(x base.EngineMigration) error {
|
|
// this will add timestamps where it is useful to have
|
|
|
|
// Star represents a starred repo by an user.
|
|
type Star struct {
|
|
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
|
|
}
|
|
if err := x.Sync(new(Star)); err != nil {
|
|
return err
|
|
}
|
|
|
|
// Label represents a label of repository for issues.
|
|
type Label struct {
|
|
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
|
|
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
|
|
}
|
|
if err := x.Sync(new(Label)); err != nil {
|
|
return err
|
|
}
|
|
|
|
// Follow represents relations of user and their followers.
|
|
type Follow struct {
|
|
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
|
|
}
|
|
if err := x.Sync(new(Follow)); err != nil {
|
|
return err
|
|
}
|
|
|
|
// Watch is connection request for receiving repository notification.
|
|
type Watch struct {
|
|
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
|
|
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
|
|
}
|
|
if err := x.Sync(new(Watch)); err != nil {
|
|
return err
|
|
}
|
|
|
|
// Collaboration represent the relation between an individual and a repository.
|
|
type Collaboration struct {
|
|
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
|
|
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
|
|
}
|
|
return x.Sync(new(Collaboration))
|
|
}
|