diff --git a/migrations/migrations.go b/migrations/migrations.go index 310590b..9a20528 100644 --- a/migrations/migrations.go +++ b/migrations/migrations.go @@ -66,6 +66,7 @@ var migrations = []Migration{ New("support oauth via invite", oauthInvites), // V7 -> V8 (v0.12.0) New("optimize drafts retrieval", optimizeDrafts), // V8 -> V9 New("support post signatures", supportPostSignatures), // V9 -> V10 + New("Widen oauth_users.access_token", widenOauthAcceesToken), // V10 -> V11 } // CurrentVer returns the current migration version the application is on diff --git a/migrations/v11.go b/migrations/v11.go new file mode 100644 index 0000000..412c648 --- /dev/null +++ b/migrations/v11.go @@ -0,0 +1,38 @@ +/* + * Copyright © 2020 Musing Studio LLC. + * + * This file is part of WriteFreely. + * + * WriteFreely is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, included + * in the LICENSE file in this source code package. + */ + +package migrations + +/** + * Widen `oauth_users.access_token`, necessary only for mysql + */ +func widenOauthAcceesToken(db *datastore) error { + if db.driverName == driverMySQL { + t, err := db.Begin() + if err != nil { + t.Rollback() + return err + } + + _, err = t.Exec(`ALTER TABLE oauth_users MODIFY COLUMN access_token ` + db.typeText() + db.collateMultiByte() + ` NULL`) + if err != nil { + t.Rollback() + return err + } + + err = t.Commit() + if err != nil { + t.Rollback() + return err + } + } + + return nil +}