diff --git a/models/forgejo_migrations/migrate.go b/models/forgejo_migrations/migrate.go index 3b6da74149..0185e3c9a0 100644 --- a/models/forgejo_migrations/migrate.go +++ b/models/forgejo_migrations/migrate.go @@ -66,6 +66,8 @@ var migrations = []*Migration{ NewMigration("Add `hide_archive_links` column to `release` table", AddHideArchiveLinksToRelease), // v14 -> v15 NewMigration("Remove Gitea-specific columns from the repository and badge tables", RemoveGiteaSpecificColumnsFromRepositoryAndBadge), + // v15 -> v16 + NewMigration("Add star lists", AddStarLists), } // GetCurrentDBVersion returns the current Forgejo database version. diff --git a/models/forgejo_migrations/v15.go b/models/forgejo_migrations/v15.go new file mode 100644 index 0000000000..6e19d67b93 --- /dev/null +++ b/models/forgejo_migrations/v15.go @@ -0,0 +1,35 @@ +// Copyright 2024 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package forgejo_migrations //nolint:revive + +import ( + "code.gitea.io/gitea/modules/timeutil" + + "xorm.io/xorm" +) + +func AddStarLists(x *xorm.Engine) error { + type StarList struct { + ID int64 `xorm:"pk autoincr"` + UserID int64 `xorm:"INDEX UNIQUE(name)"` + Name string `xorm:"INDEX UNIQUE(name)"` + Description string + IsPrivate bool + CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` + } + + err := x.Sync(&StarList{}) + if err != nil { + return err + } + + type StarListRepos struct { + ID int64 `xorm:"pk autoincr"` + StarListID int64 `xorm:"INDEX UNIQUE(repo)"` + RepoID int64 `xorm:"INDEX UNIQUE(repo)"` + CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` + } + + return x.Sync(&StarListRepos{}) +} diff --git a/release-notes/8.0.0/feat/3621.md b/release-notes/8.0.0/feat/3621.md new file mode 100644 index 0000000000..ee140658b3 --- /dev/null +++ b/release-notes/8.0.0/feat/3621.md @@ -0,0 +1 @@ +Add star lists