Files
0451meishi/backend/internal/migrate/migrate.go
2026-01-15 11:37:22 +08:00

38 lines
1.1 KiB
Go

package migrate
import (
"0451meishiditu/backend/internal/models"
"gorm.io/gorm"
)
func AutoMigrate(db *gorm.DB) error {
if err := db.AutoMigrate(
&models.AdminUser{},
&models.SystemSetting{},
&models.APIKey{},
&models.Category{},
&models.MerchantApplication{},
&models.User{},
&models.Store{},
&models.StoreMetric{},
&models.StoreLike{},
&models.StoreImage{},
&models.SignatureDish{},
&models.Review{},
); err != nil {
return err
}
// Hotfix: allow users.douyin_open_id to be NULL to avoid unique-index conflicts on empty string.
_ = db.Exec("ALTER TABLE users MODIFY douyin_open_id varchar(128) NULL").Error
_ = db.Exec("UPDATE users SET douyin_open_id = NULL WHERE douyin_open_id = ''").Error
// Optional: lat/lng are deprecated; allow NULL for existing schemas.
_ = db.Exec("ALTER TABLE stores MODIFY lat double NULL").Error
_ = db.Exec("ALTER TABLE stores MODIFY lng double NULL").Error
_ = db.Exec("ALTER TABLE merchant_applications MODIFY lat double NULL").Error
_ = db.Exec("ALTER TABLE merchant_applications MODIFY lng double NULL").Error
return nil
}