/sysinit/database.go
https://github.com/snowlyg/IrisApiProject · Go · 45 lines · 37 code · 8 blank · 0 comment · 11 complexity · 0172bdc08225d7239a2846502d0844dc MD5 · raw file
- package sysinit
- import (
- "errors"
- "fmt"
- logger "github.com/sirupsen/logrus"
- "github.com/jinzhu/gorm"
- _ "github.com/jinzhu/gorm/dialects/mysql"
- _ "github.com/jinzhu/gorm/dialects/postgres"
- _ "github.com/jinzhu/gorm/dialects/sqlite"
- "github.com/snowlyg/IrisAdminApi/config"
- "github.com/snowlyg/IrisAdminApi/libs"
- )
- var (
- Db *gorm.DB
- )
- func init() {
- var err error
- var conn string
- if config.Config.DB.Adapter == "mysql" {
- 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)
- } else if config.Config.DB.Adapter == "postgres" {
- 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)
- } else if config.Config.DB.Adapter == "sqlite3" {
- conn = libs.DBFile()
- } else {
- logger.Println(errors.New("not supported database adapter"))
- }
- Db, err = gorm.Open(config.Config.DB.Adapter, conn)
- if err != nil {
- logger.Println(err)
- }
- gorm.DefaultTableNameHandler = func(Db *gorm.DB, defaultTableName string) string {
- return config.Config.DB.Prefix + defaultTableName
- }
- Db.DB().SetMaxIdleConns(10)
- Db.DB().SetMaxOpenConns(100)
- }