db.go 1014 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. func getDB() (*gorm.DB, error) {
  26. db, err := mysql.GetClient(*confDBHost, *confDBPort, *confDBName, *confDBUser, *confDBPass)
  27. if err != nil {
  28. return nil, err
  29. }
  30. gormdb, err := gorm.Open("mysql", db)
  31. if err != nil {
  32. return nil, err
  33. }
  34. gormdb.SingularTable(true)
  35. gormdb.LogMode(true)
  36. return gormdb, nil
  37. }