models.go 941 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package model
  2. import (
  3. "fmt"
  4. "github.com/0xJacky/Nginx-UI/server/settings"
  5. "gorm.io/driver/sqlite"
  6. "gorm.io/gorm"
  7. "gorm.io/gorm/logger"
  8. "log"
  9. "path"
  10. "time"
  11. )
  12. var db *gorm.DB
  13. type Model struct {
  14. ID uint `gorm:"primary_key" json:"id"`
  15. CreatedAt time.Time `json:"created_at"`
  16. UpdatedAt time.Time `json:"updated_at"`
  17. DeletedAt *time.Time `gorm:"index" json:"deleted_at"`
  18. }
  19. func Init() {
  20. dbPath := path.Join(path.Dir(settings.ConfPath), fmt.Sprintf("%s.db", settings.ServerSettings.Database))
  21. var err error
  22. db, err = gorm.Open(sqlite.Open(dbPath), &gorm.Config{
  23. Logger: logger.Default.LogMode(logger.Info),
  24. PrepareStmt: true,
  25. })
  26. if err != nil {
  27. log.Println(err)
  28. }
  29. // Migrate the schema
  30. AutoMigrate(&ConfigBackup{})
  31. AutoMigrate(&Auth{})
  32. AutoMigrate(&AuthToken{})
  33. AutoMigrate(&Cert{})
  34. }
  35. func AutoMigrate(model interface{}) {
  36. err := db.AutoMigrate(model)
  37. if err != nil {
  38. log.Fatal(err)
  39. }
  40. }