38 lines
1.1 KiB
Go
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
|
|
}
|