| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package operations
- import (
- "fmt"
- "git.sxidc.com/service-supports/fserr"
- "gorm.io/driver/postgres"
- "gorm.io/gorm"
- "gorm.io/gorm/logger"
- )
- func newGormDB(dbConfig *Config) (*gorm.DB, error) {
- if dbConfig == nil {
- return nil, fserr.New("没有传递数据库配置")
- }
- gormDB, err := newPostgresGormDB(dbConfig)
- if err != nil {
- return nil, err
- }
- return gormDB, nil
- }
- func newPostgresGormDB(dbConfig *Config) (*gorm.DB, error) {
- dsn := "host=%s port=%s user=%s password=%s dbname=%s sslmode=disable TimeZone=Asia/Shanghai"
- connStr := fmt.Sprintf(dsn, dbConfig.Address, dbConfig.Port, dbConfig.UserName, dbConfig.Password, dbConfig.Database)
- return gorm.Open(postgres.Open(connStr), &gorm.Config{
- Logger: logger.Default.LogMode(logger.Info),
- PrepareStmt: true,
- })
- }
- func destroyGormDB(gormDB *gorm.DB) error {
- if gormDB == nil {
- return nil
- }
- db, err := gormDB.DB()
- if err != nil {
- return err
- }
- err = db.Close()
- if err != nil {
- return err
- }
- db = nil
- return nil
- }
|