forked from NYANDEV/forgejo
fix gpg wrong column types
This commit is contained in:
parent
430cc4f42a
commit
608cd54a68
3 changed files with 54 additions and 2 deletions
|
@ -20,8 +20,8 @@ import (
|
||||||
type GPGKey struct {
|
type GPGKey struct {
|
||||||
ID int64 `xorm:"pk autoincr"`
|
ID int64 `xorm:"pk autoincr"`
|
||||||
OwnerID int64 `xorm:"INDEX NOT NULL"`
|
OwnerID int64 `xorm:"INDEX NOT NULL"`
|
||||||
KeyID string `xorm:"INDEX TEXT NOT NULL"`
|
KeyID string `xorm:"INDEX CHAR(16) NOT NULL"`
|
||||||
PrimaryKeyID string `xorm:"TEXT"`
|
PrimaryKeyID string `xorm:"CHAR(16)"`
|
||||||
Content string `xorm:"TEXT NOT NULL"`
|
Content string `xorm:"TEXT NOT NULL"`
|
||||||
Created time.Time `xorm:"-"`
|
Created time.Time `xorm:"-"`
|
||||||
CreatedUnix int64
|
CreatedUnix int64
|
||||||
|
|
|
@ -96,6 +96,8 @@ var migrations = []Migration{
|
||||||
NewMigration("generate and migrate wiki Git hooks", generateAndMigrateWikiGitHooks),
|
NewMigration("generate and migrate wiki Git hooks", generateAndMigrateWikiGitHooks),
|
||||||
// v23 -> v24
|
// v23 -> v24
|
||||||
NewMigration("add user openid table", addUserOpenID),
|
NewMigration("add user openid table", addUserOpenID),
|
||||||
|
// v24 -> v25
|
||||||
|
NewMigration("change the key_id and primary_key_id type", changeGPGKeysColumns),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Migrate database to current version
|
// Migrate database to current version
|
||||||
|
|
50
models/migrations/v24.go
Normal file
50
models/migrations/v24.go
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
// 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"
|
||||||
|
|
||||||
|
"github.com/go-xorm/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))
|
||||||
|
}
|
Loading…
Reference in a new issue