diff --git a/go.mod b/go.mod index 15f3e205..fcd4fec7 100644 --- a/go.mod +++ b/go.mod @@ -20,6 +20,7 @@ require ( github.com/golang-jwt/jwt/v4 v4.5.0 github.com/golang-migrate/migrate/v4 v4.15.2 github.com/huaweicloud/huaweicloud-sdk-go-obs v3.22.11+incompatible + github.com/jmoiron/sqlx v1.3.1 github.com/json-iterator/go v1.1.12 github.com/meilisearch/meilisearch-go v0.21.0 github.com/minio/minio-go/v7 v7.0.49 diff --git a/go.sum b/go.sum index 17a229a5..4e1c4c86 100644 --- a/go.sum +++ b/go.sum @@ -795,6 +795,7 @@ github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= +github.com/jmoiron/sqlx v1.3.1 h1:aLN7YINNZ7cYOPK3QC83dbM6KT0NMqVMw961TqrejlE= github.com/jmoiron/sqlx v1.3.1/go.mod h1:2BljVx/86SuTyjE+aPYlHCTNvZrnJXghYGpNiXLBMCQ= github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= diff --git a/internal/conf/db_sqlx.go b/internal/conf/db_sqlx.go new file mode 100644 index 00000000..a8b1cee4 --- /dev/null +++ b/internal/conf/db_sqlx.go @@ -0,0 +1,30 @@ +// Copyright 2023 ROC. All rights reserved. +// Use of this source code is governed by a MIT style +// license that can be found in the LICENSE file. + +package conf + +import ( + "sync" + + "github.com/jmoiron/sqlx" + "github.com/rocboss/paopao-ce/pkg/naming" + "github.com/sirupsen/logrus" +) + +var ( + _sqlxdb *sqlx.DB + _onceSqlx sync.Once +) + +func MustSqlxDB() *sqlx.DB { + _onceSqlx.Do(func() { + driver, db, err := newSqlDB() + if err != nil { + logrus.Fatalf("new sqlx db failed: %s", err) + } + _sqlxdb = sqlx.NewDb(db, driver) + _sqlxdb.MapperFunc(naming.NewSnakeNamingStrategy().Naming) + }) + return _sqlxdb +}