diff --git a/models/auth/auth_token.go b/models/auth/auth_token.go index d09aebcf85..d01ddbca1e 100644 --- a/models/auth/auth_token.go +++ b/models/auth/auth_token.go @@ -36,7 +36,7 @@ func EmailActivation(email string) AuthorizationPurpose { // AuthorizationToken represents a authorization token to a user. type AuthorizationToken struct { ID int64 `xorm:"pk autoincr"` - UID int64 `xorm:"INDEX"` + UID int64 `xorm:"INDEX REFERENCES(user, id)"` LookupKey string `xorm:"INDEX UNIQUE"` HashedValidator string Purpose AuthorizationPurpose `xorm:"NOT NULL DEFAULT 'long_term_authorization'"` diff --git a/models/forgejo_migrations/v14a_add-foreign-keys-forgejo_auth_token.go b/models/forgejo_migrations/v14a_add-foreign-keys-forgejo_auth_token.go new file mode 100644 index 0000000000..a5d8126d91 --- /dev/null +++ b/models/forgejo_migrations/v14a_add-foreign-keys-forgejo_auth_token.go @@ -0,0 +1,24 @@ +// Copyright 2025 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: GPL-3.0-or-later + +package forgejo_migrations + +import ( + "xorm.io/xorm" +) + +func init() { + registerMigration(&Migration{ + Description: "add foreign keys to table forgejo_auth_token", + Upgrade: addForeignKeysForgejoAuthToken, + }) +} + +func addForeignKeysForgejoAuthToken(x *xorm.Engine) error { + type ForgejoAuthToken struct { + UID int64 `xorm:"INDEX REFERENCES(user, id)"` + } + return syncDoctorForeignKey(x, []any{ + new(ForgejoAuthToken), + }) +}