diff --git a/models/external_login_user.go b/models/external_login_user.go
index f6357b8274..265d855ccf 100644
--- a/models/external_login_user.go
+++ b/models/external_login_user.go
@@ -28,9 +28,9 @@ type ExternalLoginUser struct {
 	Description       string
 	AvatarURL         string
 	Location          string
-	AccessToken       string
-	AccessTokenSecret string
-	RefreshToken      string
+	AccessToken       string `xorm:"TEXT"`
+	AccessTokenSecret string `xorm:"TEXT"`
+	RefreshToken      string `xorm:"TEXT"`
 	ExpiresAt         time.Time
 }
 
diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index ef4f5b823f..19b1095cd3 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -256,6 +256,8 @@ var migrations = []Migration{
 	NewMigration("add task table and status column for repository table", addTaskTable),
 	// v100 -> v101
 	NewMigration("update migration repositories' service type", updateMigrationServiceTypes),
+	// v101 -> v102
+	NewMigration("change length of some external login users columns", changeSomeColumnsLengthOfExternalLoginUser),
 }
 
 // Migrate database to current version
diff --git a/models/migrations/v101.go b/models/migrations/v101.go
new file mode 100644
index 0000000000..9ef82a2933
--- /dev/null
+++ b/models/migrations/v101.go
@@ -0,0 +1,19 @@
+// Copyright 2019 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 (
+	"xorm.io/xorm"
+)
+
+func changeSomeColumnsLengthOfExternalLoginUser(x *xorm.Engine) error {
+	type ExternalLoginUser struct {
+		AccessToken       string `xorm:"TEXT"`
+		AccessTokenSecret string `xorm:"TEXT"`
+		RefreshToken      string `xorm:"TEXT"`
+	}
+
+	return x.Sync2(new(ExternalLoginUser))
+}