liuhaijun e94826ce29 add server
Change-Id: I0760f17f6a01c0121b59fcbfafc666032dbc30af
2024-09-19 09:44:15 +00:00

71 lines
2.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package data
import (
"fmt"
c "git.inspur.com/sbg-jszt/cfn/cfn-schedule/config"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/pkg/log"
"gorm.io/driver/postgres"
"gorm.io/gorm"
"gorm.io/gorm/logger"
"gorm.io/gorm/schema"
)
var PostgreSqlDB = make(map[string]*gorm.DB)
type Writer interface {
Printf(string, ...interface{})
}
type WriterLog struct {
}
func (w WriterLog) Printf(format string, args ...interface{}) {
log.Logger.Sugar().Infof(format, args...)
}
func initPostgres() {
var err error
postgreSqlConfigMap := c.Config.DatabaseConfig.PostgreSqlConfig
if c.Config.DatabaseConfig.PostgreSqlConfig != nil && len(postgreSqlConfigMap) > 0 {
for name, postgreSqlConfig := range postgreSqlConfigMap {
var writerLog WriterLog
if postgreSqlConfig.PrintSql {
writerLog = WriterLog{}
}
logConfig := logger.New(
writerLog,
logger.Config{
SlowThreshold: 0, // 慢 SQL 阈值
LogLevel: logger.LogLevel(postgreSqlConfig.LogLevel), // 日志级别
IgnoreRecordNotFoundError: false, // 忽略ErrRecordNotFound记录未找到错误
Colorful: false, // 是否启用彩色打印
},
)
configs := &gorm.Config{
NamingStrategy: schema.NamingStrategy{
TablePrefix: postgreSqlConfig.TablePrefix, // 表名前缀
// SingularTable: true, // 使用单数表名
},
Logger: logConfig,
}
dsn := fmt.Sprintf("host=%s port=%d user=%s dbname=%s password=%s timezone='Asia/Shanghai'",
postgreSqlConfig.Host,
postgreSqlConfig.Port,
postgreSqlConfig.Username,
postgreSqlConfig.Database,
postgreSqlConfig.Password,
)
log.Infof("postgres客户端初始化, 配置: %s", dsn)
PostgreSqlDB[name], err = gorm.Open(postgres.Open(dsn), configs)
if err != nil {
panic("postgres connection failed" + err.Error())
}
}
}
}