From 2f10bfa0f6a463eb0b890cb19e3c974a1abeaa8a Mon Sep 17 00:00:00 2001 From: guillep2k <18600385+guillep2k@users.noreply.github.com> Date: Wed, 23 Oct 2019 08:48:32 -0300 Subject: [PATCH] Fix extra columns from `label` table (#8633) * Fix extra fields from database * Add migration to drop unneeded columns * Fix lint * Make sure the columns exist --- models/issue_label.go | 8 ++++---- models/migrations/migrations.go | 2 ++ models/migrations/v104.go | 34 +++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 models/migrations/v104.go diff --git a/models/issue_label.go b/models/issue_label.go index 2b77c4bc3..9efc7fd51 100644 --- a/models/issue_label.go +++ b/models/issue_label.go @@ -68,10 +68,10 @@ type Label struct { Color string `xorm:"VARCHAR(7)"` NumIssues int NumClosedIssues int - NumOpenIssues int `xorm:"-"` - IsChecked bool `xorm:"-"` - QueryString string - IsSelected bool + NumOpenIssues int `xorm:"-"` + IsChecked bool `xorm:"-"` + QueryString string `xorm:"-"` + IsSelected bool `xorm:"-"` } // APIFormat converts a Label to the api.Label format diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 8b1329ea6..e214f16a2 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -262,6 +262,8 @@ var migrations = []Migration{ NewMigration("update migration repositories' service type", dropColumnHeadUserNameOnPullRequest), // v103 -> v104 NewMigration("Add WhitelistDeployKeys to protected branch", addWhitelistDeployKeysToBranches), + // v104 -> v105 + NewMigration("remove unnecessary columns from label", removeLabelUneededCols), } // Migrate database to current version diff --git a/models/migrations/v104.go b/models/migrations/v104.go new file mode 100644 index 000000000..f3ec3c88c --- /dev/null +++ b/models/migrations/v104.go @@ -0,0 +1,34 @@ +// 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 removeLabelUneededCols(x *xorm.Engine) error { + + // Make sure the columns exist before dropping them + type Label struct { + QueryString string + IsSelected bool + } + if err := x.Sync2(new(Label)); err != nil { + return err + } + + sess := x.NewSession() + defer sess.Close() + if err := sess.Begin(); err != nil { + return err + } + if err := dropTableColumns(sess, "label", "query_string"); err != nil { + return err + } + if err := dropTableColumns(sess, "label", "is_selected"); err != nil { + return err + } + return sess.Commit() +}