db.go 783 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package ovpm
  2. import (
  3. "github.com/Sirupsen/logrus"
  4. "github.com/jinzhu/gorm"
  5. // We blank import sqlite here because gorm needs it.
  6. _ "github.com/jinzhu/gorm/dialects/sqlite"
  7. )
  8. var db *gorm.DB
  9. // SetupDB prepares database for use.
  10. //
  11. // It should be run at the start of the program.
  12. func SetupDB(dialect string, args ...interface{}) {
  13. if len(args) > 0 && args[0] == "" {
  14. args[0] = _DefaultDBPath
  15. }
  16. var err error
  17. db, err = gorm.Open(dialect, args...)
  18. if err != nil {
  19. logrus.Fatalf("couldn't open sqlite database %v: %v", args, err)
  20. }
  21. db.AutoMigrate(&DBUser{})
  22. db.AutoMigrate(&DBServer{})
  23. db.AutoMigrate(&DBRevoked{})
  24. db.AutoMigrate(&DBNetwork{})
  25. }
  26. // CeaseDB closes the database.
  27. //
  28. // It should be run at the exit of the program.
  29. func CeaseDB() {
  30. db.Close()
  31. }