// Copyright 2017 The Gitea Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. package migrations import ( "time" "xorm.io/xorm" ) func changeGPGKeysColumns(x *xorm.Engine) error { // EmailAddress is the list of all email addresses of a user. Can contain the // primary email address, but is not obligatory. type EmailAddress struct { ID int64 `xorm:"pk autoincr"` UID int64 `xorm:"INDEX NOT NULL"` Email string `xorm:"UNIQUE NOT NULL"` IsActivated bool IsPrimary bool `xorm:"-"` } // GPGKey represents a GPG key. type GPGKey struct { ID int64 `xorm:"pk autoincr"` OwnerID int64 `xorm:"INDEX NOT NULL"` KeyID string `xorm:"INDEX CHAR(16) NOT NULL"` PrimaryKeyID string `xorm:"CHAR(16)"` Content string `xorm:"TEXT NOT NULL"` Created time.Time `xorm:"-"` CreatedUnix int64 Expired time.Time `xorm:"-"` ExpiredUnix int64 Added time.Time `xorm:"-"` AddedUnix int64 SubsKey []*GPGKey `xorm:"-"` Emails []*EmailAddress CanSign bool CanEncryptComms bool CanEncryptStorage bool CanCertify bool } if err := x.DropTables(new(GPGKey)); err != nil { return err } return x.Sync(new(GPGKey)) }