Fix activity feed (#1779)

* Fix activity feed

Preserve actions after user/repo name change

* Add missing comment

* Fix migration, and remove fields completely

* Tests
This commit is contained in:
Ethan Koenig 2017-05-25 21:38:18 -04:00 committed by Lunny Xiao
parent 03912ce014
commit 0c332f0480
11 changed files with 238 additions and 165 deletions

View file

@ -114,6 +114,8 @@ var migrations = []Migration{
NewMigration("add field for login source synchronization", addLoginSourceSyncEnabledColumn),
// v32 -> v33
NewMigration("add units for team", addUnitsToRepoTeam),
// v33 -> v34
NewMigration("remove columns from action", removeActionColumns),
}
// Migrate database to current version

44
models/migrations/v34.go Normal file
View file

@ -0,0 +1,44 @@
// Copyright 2017 Gitea. 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 (
"fmt"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"github.com/go-xorm/xorm"
)
// ActionV34 describes the removed fields
type ActionV34 struct {
ActUserName string `xorm:"-"`
RepoUserName string `xorm:"-"`
RepoName string `xorm:"-"`
}
// TableName will be invoked by XORM to customize the table name
func (*ActionV34) TableName() string {
return "action"
}
func removeActionColumns(x *xorm.Engine) error {
switch {
case setting.UseSQLite3:
log.Warn("Unable to drop columns in SQLite")
case setting.UseMySQL, setting.UsePostgreSQL, setting.UseMSSQL, setting.UseTiDB:
if _, err := x.Exec("ALTER TABLE action DROP COLUMN act_user_name"); err != nil {
return fmt.Errorf("DROP COLUMN act_user_name: %v", err)
} else if _, err = x.Exec("ALTER TABLE action DROP COLUMN repo_user_name"); err != nil {
return fmt.Errorf("DROP COLUMN repo_user_name: %v", err)
} else if _, err = x.Exec("ALTER TABLE action DROP COLUMN repo_name"); err != nil {
return fmt.Errorf("DROP COLUMN repo_name: %v", err)
}
default:
log.Fatal(4, "Unrecognized DB")
}
return nil
}