models.go 882 B

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