Skip to content

Commit 7ad2a22

Browse files
committed
use 2x add col & 2x update & 2x drop col
1 parent b9524f3 commit 7ad2a22

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

models/migrations/v167.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ func recreateUserTableToFixDefaultValues(x *xorm.Engine) error {
1414
type User struct {
1515
ID int64 `xorm:"pk autoincr"`
1616
KeepActivityPrivate bool `xorm:"NOT NULL DEFAULT false"`
17+
TmpCol bool `xorm:"NOT NULL DEFAULT false"`
1718
}
1819

1920
if _, err := x.Where(builder.IsNull{"keep_activity_private"}).
@@ -40,8 +41,11 @@ func recreateUserTableToFixDefaultValues(x *xorm.Engine) error {
4041
return err
4142
}
4243

43-
var activityPrivateUsers []int64
44-
if err := sess.Select("id").Table("user").Where(builder.Eq{"keep_activity_private": true}).Find(&activityPrivateUsers); err != nil {
44+
if err := sess.Sync2(new(User)); err != nil {
45+
return err
46+
}
47+
48+
if _, err := sess.Exec("UPDATE `user` SET tmp_col=keep_activity_private;"); err != nil {
4549
return err
4650
}
4751

@@ -53,10 +57,12 @@ func recreateUserTableToFixDefaultValues(x *xorm.Engine) error {
5357
return err
5458
}
5559

56-
for _, uid := range activityPrivateUsers {
57-
if _, err := sess.ID(uid).Cols("keep_activity_private").Update(&User{KeepActivityPrivate: true}); err != nil {
58-
return err
59-
}
60+
if _, err := sess.Exec("UPDATE `user` SET keep_activity_private=tmp_col;"); err != nil {
61+
return err
62+
}
63+
64+
if err := dropTableColumns(sess, "user", "tmp_col"); err != nil {
65+
return err
6066
}
6167

6268
return sess.Commit()

0 commit comments

Comments
 (0)