diff --git a/models/forgejo_migrations/migrate.go b/models/forgejo_migrations/migrate.go index a4cbca70c1..ef446add4e 100644 --- a/models/forgejo_migrations/migrate.go +++ b/models/forgejo_migrations/migrate.go @@ -94,6 +94,8 @@ var migrations = []*Migration{ NewMigration("Add `created_unix` column to `user_redirect` table", AddCreatedUnixToRedirect), // v27 -> v28 NewMigration("Add pronoun privacy settings to user", AddHidePronounsOptionToUser), + // v28 -> v29 + NewMigration("Add public key information to `FederatedUser` and `FederationHost`", AddPublicKeyInformationForFederation), } // GetCurrentDBVersion returns the current Forgejo database version. diff --git a/models/forgejo_migrations/v29.go b/models/forgejo_migrations/v29.go new file mode 100644 index 0000000000..d0c2f723ae --- /dev/null +++ b/models/forgejo_migrations/v29.go @@ -0,0 +1,29 @@ +// Copyright 2025 The Forgejo Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package forgejo_migrations //nolint:revive + +import ( + "database/sql" + + "xorm.io/xorm" +) + +func AddPublicKeyInformationForFederation(x *xorm.Engine) error { + type FederationHost struct { + KeyID sql.NullString `xorm:"key_id UNIQUE"` + PublicKey sql.Null[sql.RawBytes] `xorm:"BLOB"` + } + + err := x.Sync(&FederationHost{}) + if err != nil { + return err + } + + type FederatedUser struct { + KeyID sql.NullString `xorm:"key_id UNIQUE"` + PublicKey sql.Null[sql.RawBytes] `xorm:"BLOB"` + } + + return x.Sync(&FederatedUser{}) +}