/sysinit/database.go

https://github.com/snowlyg/IrisApiProject · Go · 45 lines · 37 code · 8 blank · 0 comment · 11 complexity · 0172bdc08225d7239a2846502d0844dc MD5 · raw file

  1. package sysinit
  2. import (
  3. "errors"
  4. "fmt"
  5. logger "github.com/sirupsen/logrus"
  6. "github.com/jinzhu/gorm"
  7. _ "github.com/jinzhu/gorm/dialects/mysql"
  8. _ "github.com/jinzhu/gorm/dialects/postgres"
  9. _ "github.com/jinzhu/gorm/dialects/sqlite"
  10. "github.com/snowlyg/IrisAdminApi/config"
  11. "github.com/snowlyg/IrisAdminApi/libs"
  12. )
  13. var (
  14. Db *gorm.DB
  15. )
  16. func init() {
  17. var err error
  18. var conn string
  19. if config.Config.DB.Adapter == "mysql" {
  20. conn = fmt.Sprintf("%v:%v@tcp(%v:%v)/%v?parseTime=True&loc=Local", config.Config.DB.User, config.Config.DB.Password, config.Config.DB.Host, config.Config.DB.Port, config.Config.DB.Name)
  21. } else if config.Config.DB.Adapter == "postgres" {
  22. conn = fmt.Sprintf("postgres://%v:%v@%v/%v?sslmode=disable", config.Config.DB.User, config.Config.DB.Password, config.Config.DB.Host, config.Config.DB.Name)
  23. } else if config.Config.DB.Adapter == "sqlite3" {
  24. conn = libs.DBFile()
  25. } else {
  26. logger.Println(errors.New("not supported database adapter"))
  27. }
  28. Db, err = gorm.Open(config.Config.DB.Adapter, conn)
  29. if err != nil {
  30. logger.Println(err)
  31. }
  32. gorm.DefaultTableNameHandler = func(Db *gorm.DB, defaultTableName string) string {
  33. return config.Config.DB.Prefix + defaultTableName
  34. }
  35. Db.DB().SetMaxIdleConns(10)
  36. Db.DB().SetMaxOpenConns(100)
  37. }