1
0

v23.go 567 B

1234567891011121314151617181920212223242526272829
  1. package migrations
  2. import (
  3. "gorm.io/gorm"
  4. )
  5. func addUserPublicEmail(db *gorm.DB) error {
  6. type User struct {
  7. PublicEmail string `xorm:"NOT NULL" gorm:"not null"`
  8. }
  9. if db.Migrator().HasColumn(&User{}, "PublicEmail") {
  10. return errMigrationSkipped
  11. }
  12. return db.Transaction(func(tx *gorm.DB) error {
  13. err := tx.Migrator().AddColumn(&User{}, "PublicEmail")
  14. if err != nil {
  15. return err
  16. }
  17. err = tx.Exec("UPDATE `user` SET `public_email` = `email` WHERE `public_email` = '' AND `type` = 0").Error
  18. if err != nil {
  19. return err
  20. }
  21. return nil
  22. })
  23. }