diff options
author | E99p1ant <i@github.red> | 2022-06-05 13:34:21 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-05 13:34:21 +0800 |
commit | a328e7ccc4f94e19cddfe5894636228663f5c7fa (patch) | |
tree | 34d827770f004a40eb8dc1feb44109e63452d5a0 /internal/db/migrations/migrations.go | |
parent | 155cae1de8916fc3fde78f350763034b7422caee (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.go | 20 |
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 |