db.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package main
  2. import (
  3. "flag"
  4. "sparrow/pkg/mysql"
  5. "github.com/jinzhu/gorm"
  6. )
  7. const (
  8. flagDBHost = "dbhost"
  9. flagDBPort = "dbport"
  10. flagDBName = "dbname"
  11. flagDBUser = "dbuser"
  12. flagDBPass = "dbpass"
  13. defaultDBHost = "192.168.175.60"
  14. defaultDBPort = "3306"
  15. defaultDBName = "SparrowCloud"
  16. defaultDBUser = "SparrowCloud"
  17. )
  18. var (
  19. confDBHost = flag.String(flagDBHost, defaultDBHost, "database host address.")
  20. confDBPort = flag.String(flagDBPort, defaultDBPort, "database host port.")
  21. confDBName = flag.String(flagDBName, defaultDBName, "database name.")
  22. confDBUser = flag.String(flagDBUser, defaultDBUser, "database user.")
  23. confDBPass = flag.String(flagDBPass, "", "databse password.")
  24. )
  25. // DB db
  26. var DB *gorm.DB
  27. func getDB() (*gorm.DB, error) {
  28. db, err := mysql.GetClient(*confDBHost, *confDBPort, *confDBName, *confDBUser, *confDBPass)
  29. if err != nil {
  30. return nil, err
  31. }
  32. gormdb, err := gorm.Open("mysql", db)
  33. if err != nil {
  34. return nil, err
  35. }
  36. gormdb.SingularTable(true)
  37. gormdb.LogMode(true)
  38. return gormdb, nil
  39. }