Files
gemini-banlancer/internal/db/migrations/migrations.go
2025-11-20 12:24:05 +08:00

37 lines
958 B
Go

// Filename: internal/db/migrations/migrations.go (全新)
package migrations
import (
"gemini-balancer/internal/models"
"github.com/sirupsen/logrus"
"gorm.io/gorm"
)
// RunMigrations 负责执行所有的数据库模式迁移。
func RunMigrations(db *gorm.DB, logger *logrus.Logger) error {
log := logger.WithField("component", "migrations")
log.Info("Running database schema migrations...")
// 集中管理所有需要被创建或更新的表。
err := db.AutoMigrate(
&models.UpstreamEndpoint{},
&models.ProxyConfig{},
&models.APIKey{},
&models.KeyGroup{},
&models.GroupModelMapping{},
&models.AuthToken{},
&models.RequestLog{},
&models.StatsHourly{},
&models.FileRecord{},
&models.Setting{},
&models.GroupSettings{},
&models.GroupAPIKeyMapping{},
)
if err != nil {
log.Errorf("Database schema migration failed: %v", err)
return err
}
log.Info("Database schema migrations completed successfully.")
return nil
}