1
0
Fork 1
mirror of https://github.com/thatmattlove/hyperglass.git synced 2026-01-17 08:48:05 +00:00
thatmattlove-hyperglass/core/migrations/auto.go
2023-07-24 10:57:09 -04:00

39 lines
842 B
Go

package migrations
import (
"errors"
"github.com/thatmattlove/hyperglass/core/infrastructure/database"
"github.com/thatmattlove/hyperglass/core/models"
"github.com/thatmattlove/hyperglass/core/models/settings"
"gorm.io/gorm"
)
func AutoMigrate() (err error) {
db, err := database.New()
if err != nil {
return
}
err = db.DB.AutoMigrate(
settings.Logging{},
settings.Message{},
models.Group{},
models.Credential{},
models.Device{},
models.Proxy{},
)
if err != nil {
return
}
if err = db.DB.AutoMigrate(&settings.Settings{}); err == nil && db.DB.Migrator().HasTable(&settings.Settings{}) {
if err := db.DB.First(&settings.Settings{}).Error; errors.Is(err, gorm.ErrRecordNotFound) {
s, err := settings.Seed()
if err != nil {
return err
}
tx := db.DB.Create(s)
return tx.Error
}
}
return
}