Skip to content

Commit 0087076

Browse files
committed
use recreate since it just WORKS
1 parent 6a7130c commit 0087076

File tree

1 file changed

+61
-30
lines changed

1 file changed

+61
-30
lines changed

models/migrations/v167.go

Lines changed: 61 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,66 @@ import (
1212

1313
func recreateUserTableToFixDefaultValues(x *xorm.Engine) error {
1414
type User struct {
15-
ID int64 `xorm:"pk autoincr"`
16-
KeepActivityPrivate bool `xorm:"NOT NULL DEFAULT false"`
17-
TmpCol bool `xorm:"NOT NULL DEFAULT false"`
15+
ID int64 `xorm:"pk autoincr"`
16+
LowerName string `xorm:"UNIQUE NOT NULL"`
17+
Name string `xorm:"UNIQUE NOT NULL"`
18+
FullName string
19+
Email string `xorm:"NOT NULL"`
20+
KeepEmailPrivate bool
21+
EmailNotificationsPreference string `xorm:"VARCHAR(20) NOT NULL DEFAULT 'enabled'"`
22+
Passwd string `xorm:"NOT NULL"`
23+
PasswdHashAlgo string `xorm:"NOT NULL DEFAULT 'argon2'"`
24+
25+
MustChangePassword bool `xorm:"NOT NULL DEFAULT false"`
26+
27+
LoginType int
28+
LoginSource int64 `xorm:"NOT NULL DEFAULT 0"`
29+
LoginName string
30+
Type int
31+
Location string
32+
Website string
33+
Rands string `xorm:"VARCHAR(10)"`
34+
Salt string `xorm:"VARCHAR(10)"`
35+
Language string `xorm:"VARCHAR(5)"`
36+
Description string
37+
38+
CreatedUnix int64 `xorm:"INDEX created"`
39+
UpdatedUnix int64 `xorm:"INDEX updated"`
40+
LastLoginUnix int64 `xorm:"INDEX"`
41+
42+
LastRepoVisibility bool
43+
MaxRepoCreation int `xorm:"NOT NULL DEFAULT -1"`
44+
45+
// Permissions
46+
IsActive bool `xorm:"INDEX"`
47+
IsAdmin bool
48+
IsRestricted bool `xorm:"NOT NULL DEFAULT false"`
49+
AllowGitHook bool
50+
AllowImportLocal bool
51+
AllowCreateOrganization bool `xorm:"DEFAULT true"`
52+
ProhibitLogin bool `xorm:"NOT NULL DEFAULT false"`
53+
54+
// Avatar
55+
Avatar string `xorm:"VARCHAR(2048) NOT NULL"`
56+
AvatarEmail string `xorm:"NOT NULL"`
57+
UseCustomAvatar bool
58+
59+
// Counters
60+
NumFollowers int
61+
NumFollowing int `xorm:"NOT NULL DEFAULT 0"`
62+
NumStars int
63+
NumRepos int
64+
65+
// For organization
66+
NumTeams int
67+
NumMembers int
68+
Visibility int `xorm:"NOT NULL DEFAULT 0"`
69+
RepoAdminChangeTeamAccess bool `xorm:"NOT NULL DEFAULT false"`
70+
71+
// Preferences
72+
DiffViewStyle string `xorm:"NOT NULL DEFAULT ''"`
73+
Theme string `xorm:"NOT NULL DEFAULT ''"`
74+
KeepActivityPrivate bool `xorm:"NOT NULL DEFAULT false"`
1875
}
1976

2077
if _, err := x.Where(builder.IsNull{"keep_activity_private"}).
@@ -33,12 +90,6 @@ func recreateUserTableToFixDefaultValues(x *xorm.Engine) error {
3390
}
3491
_, err := x.Exec("ALTER TABLE `user` ALTER COLUMN keep_activity_private SET DEFAULT false;")
3592
return err
36-
case schemas.MSSQL:
37-
if _, err := x.Exec("ALTER TABLE `user` ADD DEFAULT 0 FOR keep_activity_private GO;"); err != nil {
38-
return err
39-
}
40-
_, err := x.Exec("ALTER TABLE `user` ALTER COLUMN keep_activity_private bit NOT NULL GO;")
41-
return err
4293
}
4394

4495
sess := x.NewSession()
@@ -47,27 +98,7 @@ func recreateUserTableToFixDefaultValues(x *xorm.Engine) error {
4798
return err
4899
}
49100

50-
if err := sess.Sync2(new(User)); err != nil {
51-
return err
52-
}
53-
54-
if _, err := sess.Exec("UPDATE `user` SET tmp_col=keep_activity_private;"); err != nil {
55-
return err
56-
}
57-
58-
if err := dropTableColumns(sess, "user", "keep_activity_private"); err != nil {
59-
return err
60-
}
61-
62-
if err := sess.Sync2(new(User)); err != nil {
63-
return err
64-
}
65-
66-
if _, err := sess.Exec("UPDATE `user` SET keep_activity_private=tmp_col;"); err != nil {
67-
return err
68-
}
69-
70-
if err := dropTableColumns(sess, "user", "tmp_col"); err != nil {
101+
if err := recreateTable(sess, new(User)); err != nil {
71102
return err
72103
}
73104

0 commit comments

Comments
 (0)