aboutsummaryrefslogtreecommitdiff
path: root/internal/db/migrations/migrations.go
diff options
context:
space:
mode:
authorE99p1ant <i@github.red>2022-06-05 13:34:21 +0800
committerGitHub <noreply@github.com>2022-06-05 13:34:21 +0800
commita328e7ccc4f94e19cddfe5894636228663f5c7fa (patch)
tree34d827770f004a40eb8dc1feb44109e63452d5a0 /internal/db/migrations/migrations.go
parent155cae1de8916fc3fde78f350763034b7422caee (diff)
access_token: encrypt access token with SHA256 (#7008)
* access_token: encrypt access token with SHA256 * revert list access token * fix lint * generate schemadoc * add database migrations * fix tests * fix tests * add test case for access token golden * fix test in postgres * `Sha256` -> `SHA256` * Use GORM for migration * task generate-schemadoc * Use unique * change migration name * allow read * task generate-schemadoc * add changelog * fix lint error * update changelog * remove Debug * add comments Co-authored-by: Joe Chen <jc@unknwon.io>
Diffstat (limited to 'internal/db/migrations/migrations.go')
-rw-r--r--internal/db/migrations/migrations.go20
1 files changed, 12 insertions, 8 deletions
diff --git a/internal/db/migrations/migrations.go b/internal/db/migrations/migrations.go
index ad62fb15..1e89883f 100644
--- a/internal/db/migrations/migrations.go
+++ b/internal/db/migrations/migrations.go
@@ -7,6 +7,7 @@ package migrations
import (
"fmt"
+ "gorm.io/gorm"
log "unknwon.dev/clog/v2"
"xorm.io/xorm"
)
@@ -15,15 +16,15 @@ const minDBVersion = 19
type Migration interface {
Description() string
- Migrate(*xorm.Engine) error
+ Migrate(*gorm.DB) error
}
type migration struct {
description string
- migrate func(*xorm.Engine) error
+ migrate func(*gorm.DB) error
}
-func NewMigration(desc string, fn func(*xorm.Engine) error) Migration {
+func NewMigration(desc string, fn func(*gorm.DB) error) Migration {
return &migration{desc, fn}
}
@@ -31,11 +32,11 @@ func (m *migration) Description() string {
return m.description
}
-func (m *migration) Migrate(x *xorm.Engine) error {
- return m.migrate(x)
+func (m *migration) Migrate(db *gorm.DB) error {
+ return m.migrate(db)
}
-// The version table. Should have only one row with id==1
+// Version represents the version table. It should have only one row with `id == 1`.
type Version struct {
ID int64
Version int64
@@ -52,10 +53,13 @@ var migrations = []Migration{
// Add new migration here, example:
// v18 -> v19:v0.11.55
// NewMigration("clean unlinked webhook and hook_tasks", cleanUnlinkedWebhookAndHookTasks),
+
+ // v19 -> v20:v0.13.0
+ NewMigration("migrate access tokens to store SHA56", migrateAccessTokenToSHA256),
}
// Migrate database to current version
-func Migrate(x *xorm.Engine) error {
+func Migrate(x *xorm.Engine, db *gorm.DB) error {
if err := x.Sync(new(Version)); err != nil {
return fmt.Errorf("sync: %v", err)
}
@@ -112,7 +116,7 @@ In case you're stilling getting this notice, go through instructions again until
}
for i, m := range migrations[v-minDBVersion:] {
log.Info("Migration: %s", m.Description())
- if err = m.Migrate(x); err != nil {
+ if err = m.Migrate(db); err != nil {
return fmt.Errorf("do migrate: %v", err)
}
currentVersion.Version = v + int64(i) + 1