models.go 719 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package models
  2. import (
  3. "bitbucket.org/robert2206/automation/modules/settings"
  4. "github.com/jinzhu/gorm"
  5. // sqlite3 is blank import for lazy load driver and testing database
  6. _ "github.com/mattn/go-sqlite3"
  7. )
  8. var (
  9. db *gorm.DB
  10. models []interface{}
  11. )
  12. func init() {
  13. models = append(models,
  14. &User{},
  15. &Request{},
  16. &Task{},
  17. &Issue{},
  18. )
  19. }
  20. // Init is a models initializers
  21. func Init() (err error) {
  22. db, err = gorm.Open("sqlite3", "data/test.db")
  23. if err != nil {
  24. panic("Failed to connect database")
  25. }
  26. defer db.Close()
  27. // check if logging
  28. db.LogMode(settings.Ctx.DatabaseLogger)
  29. // check if migrating
  30. if settings.Ctx.DatabaseAutomigrate {
  31. db.Debug().AutoMigrate(models...)
  32. }
  33. return nil
  34. }