12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package mysql
-
- import (
- "time"
-
- "git.links123.net/links123.com/skeleton/config"
- "git.links123.net/links123.com/skeleton/service/api"
- "github.com/sirupsen/logrus"
- "upper.io/db.v3/lib/sqlbuilder"
- "upper.io/db.v3/mysql"
- )
-
- var (
- session sqlbuilder.Database
- )
-
- // Init 初始化数据库
- func Init() {
- dbConfig := config.C.DB
- settings := mysql.ConnectionURL{
- Host: dbConfig.Host,
- Database: dbConfig.Name,
- User: dbConfig.User,
- Password: dbConfig.Password,
- }
-
- var err error
- if session, err = mysql.Open(settings); err != nil {
- logrus.WithField("dsn", settings.String()).Info("connect db failed")
- panic(err)
- }
-
- logrus.WithField("dsn", settings.String()).Info("connect db success")
-
- session.SetMaxIdleConns(dbConfig.MaxIdleConnections)
- session.SetMaxOpenConns(dbConfig.MaxOpenConnections)
-
- for {
- if err := session.Ping(); err != nil {
- logrus.Warn("waiting for mysql server start...")
- time.Sleep(3 * time.Second)
- continue
- }
-
- logrus.Info("connect to mysql successful")
-
- break
- }
-
- if config.C.App.Debug {
- session.SetLogging(true)
- }
- }
-
- // Close 在程序退出时关闭连接
- func Close() {
- if session != nil {
- err := session.Close()
- if err != nil {
- logrus.Errorf("error close mysql connection: %s", err.Error())
- return
- }
- }
- logrus.Info("mysql connection close")
- }
-
- func paging(selector sqlbuilder.Selector, cp api.CommonParams) sqlbuilder.Paginator {
- return selector.Paginate(uint(cp.Limit)).Page(uint(cp.Page))
- }
|