|
@@ -1,15 +1,20 @@
|
|
|
package migrations
|
|
|
|
|
|
import (
|
|
|
- "github.com/pkg/errors"
|
|
|
+ "fmt"
|
|
|
gouuid "github.com/satori/go.uuid"
|
|
|
"gorm.io/gorm"
|
|
|
)
|
|
|
|
|
|
func addUserLocalEmail(db *gorm.DB) error {
|
|
|
type User struct {
|
|
|
- ID int64 `gorm:"primaryKey"`
|
|
|
- LocalEmail string `xorm:"NOT NULL" gorm:"not null"`
|
|
|
+ ID int64 `gorm:"primaryKey"`
|
|
|
+ LocalEmail string
|
|
|
+ }
|
|
|
+
|
|
|
+ type UserNotNULL struct {
|
|
|
+ ID int64 `gorm:"primaryKey"`
|
|
|
+ LocalEmail string
|
|
|
}
|
|
|
|
|
|
if db.Migrator().HasColumn(&User{}, "LocalEmail") {
|
|
@@ -19,7 +24,7 @@ func addUserLocalEmail(db *gorm.DB) error {
|
|
|
return db.Transaction(func(tx *gorm.DB) error {
|
|
|
err := tx.Migrator().AddColumn(&User{}, "LocalEmail")
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ return fmt.Errorf("add column user.local_email error: %s", err.Error())
|
|
|
}
|
|
|
|
|
|
const limit = 100
|
|
@@ -27,14 +32,14 @@ func addUserLocalEmail(db *gorm.DB) error {
|
|
|
var res []User
|
|
|
err := tx.Table("user").Where("type = ?", 0).Where("local_email = ''").Limit(limit).Find(&res).Error
|
|
|
if err != nil {
|
|
|
- return errors.Wrap(err, "query user")
|
|
|
+ return fmt.Errorf("query user error: %s", err.Error())
|
|
|
}
|
|
|
|
|
|
for _, r := range res {
|
|
|
r.LocalEmail = gouuid.NewV4().String() + "@fake.localhost"
|
|
|
err = tx.Save(&r).Error
|
|
|
if err != nil {
|
|
|
- return errors.Wrap(err, "save user")
|
|
|
+ return fmt.Errorf("save column user.local_email error: %s", err)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -43,6 +48,11 @@ func addUserLocalEmail(db *gorm.DB) error {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ err = tx.Migrator().AlterColumn(&User{}, "LocalEmail")
|
|
|
+ if err != nil {
|
|
|
+ return fmt.Errorf("alter column user.local_email error: %s", err.Error())
|
|
|
+ }
|
|
|
+
|
|
|
return nil
|
|
|
})
|
|
|
}
|