index.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package mysql
  2. import (
  3. "crm-api/pkg/configs"
  4. "crm-api/pkg/lfshook"
  5. "fmt"
  6. "os"
  7. "syscall"
  8. "time"
  9. _ "github.com/go-sql-driver/mysql"
  10. "github.com/sirupsen/logrus"
  11. "xorm.io/xorm"
  12. "xorm.io/xorm/log"
  13. )
  14. var DBOrmInstance *xorm.Engine
  15. func CreateDBInstance() {
  16. var err error
  17. // DBOrmInstance, err = xorm.NewEngine("sqlite3", "playcall.db")
  18. url := fmt.Sprintf("%s:%s@tcp(%s:3306)/%s?charset=utf8",
  19. configs.ConfigGlobal.MysqlDBUser,
  20. // "coovox_admin",
  21. configs.ConfigGlobal.MysqlDBSecret,
  22. // "ZycooCoovoxDba42",
  23. configs.ConfigGlobal.MysqlDBHost,
  24. configs.ConfigGlobal.MysqlDBName,
  25. )
  26. lfshook.NewLogger().Infof("mysql url %s", url)
  27. DBOrmInstance, err = xorm.NewEngine("mysql", url)
  28. if err != nil {
  29. lfshook.NewLogger().Panic(err)
  30. return
  31. }
  32. err = DBOrmInstance.Ping()
  33. if err != nil {
  34. lfshook.NewLogger().Error("mysql ping error: ", err)
  35. syscall.Kill(syscall.Getpid(), syscall.SIGINT)
  36. return
  37. }
  38. if configs.ConfigGlobal.LogLevel >= logrus.DebugLevel {
  39. DBOrmInstance.ShowSQL(true)
  40. } else {
  41. info, err := os.Open(configs.ConfigGlobal.LogInfoPath)
  42. if err != nil {
  43. lfshook.NewLogger().Error(err.Error())
  44. return
  45. }
  46. DBOrmInstance.SetLogger(log.NewSimpleLogger(info))
  47. }
  48. DBOrmInstance.Dialect().URI().Timeout = 30 * time.Second
  49. }