package global import ( "fmt" "time" "electricity_bill_calc/config" _ "github.com/lib/pq" "xorm.io/xorm" ) var ( DBConn *xorm.Engine ) func SetupDatabaseConnection() error { var err error DBConn, err = xorm.NewEngine("postgres", fmt.Sprintf( "host=%s user=%s password=%s dbname=%s port=%d sslmode=disable TimeZone=Asia/Shanghai connect_timeout=0", config.DatabaseSettings.Host, config.DatabaseSettings.User, config.DatabaseSettings.Pass, config.DatabaseSettings.DB, config.DatabaseSettings.Port, )) if err != nil { return err } DBConn.Ping() DBConn.SetMaxIdleConns(config.DatabaseSettings.MaxIdleConns) DBConn.SetMaxOpenConns(config.DatabaseSettings.MaxOpenConns) DBConn.SetConnMaxLifetime(60 * time.Second) return nil }