1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package mysql
-
- import (
- "time"
-
- "git.links123.net/Slate/CorpusAI/config"
- "git.links123.net/Slate/CorpusAI/service/api"
- "github.com/sirupsen/logrus"
- "upper.io/db.v3/lib/sqlbuilder"
- "upper.io/db.v3/mysql"
- )
-
-
- var (
- db_session sqlbuilder.Database
- )
-
-
- 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 db_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")
-
- db_session.SetMaxIdleConns(dbConfig.MaxIdleConnections)
- db_session.SetMaxOpenConns(dbConfig.MaxOpenConnections)
-
- for {
- if err := db_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 {
- db_session.SetLogging(true)
- }
- }
-
-
- func Close() {
- if db_session != nil {
- err := db_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))
- }
|