37 lines
958 B
Go
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
|
|
}
|