forked from free-lancers/electricity_bill_calc_service
		
	refactor(deps):ORM库切换为Xorm,同时增加保证数据库连接的配置。
This commit is contained in:
		
							
								
								
									
										34
									
								
								global/db.go
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								global/db.go
									
									
									
									
									
								
							| @@ -2,38 +2,36 @@ package global | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"time" | ||||
|  | ||||
| 	"electricity_bill_calc/config" | ||||
|  | ||||
| 	"gorm.io/driver/postgres" | ||||
| 	"gorm.io/gorm" | ||||
| 	_ "github.com/lib/pq" | ||||
| 	"xorm.io/xorm" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	DBConn *gorm.DB | ||||
| 	DBConn *xorm.Engine | ||||
| ) | ||||
|  | ||||
| func SetupDatabaseConnection() error { | ||||
| 	var err error | ||||
| 	DBConn, err = gorm.Open(postgres.New(postgres.Config{ | ||||
| 		DSN: fmt.Sprintf( | ||||
| 			"host=%s user=%s password=%s dbname=%s port=%d sslmode=disable TimeZone=Asia/Shanghai", | ||||
| 			config.DatabaseSettings.Host, | ||||
| 			config.DatabaseSettings.User, | ||||
| 			config.DatabaseSettings.Pass, | ||||
| 			config.DatabaseSettings.DB, | ||||
| 			config.DatabaseSettings.Port), | ||||
| 	}), &gorm.Config{}) | ||||
| 	DBConn, err = xorm.NewEngine("postgres", fmt.Sprintf( | ||||
| 		"host=%s user=%s password=%s dbname=%s port=%d sslmode=disable TimeZone=Asia/Shanghai connect_timeout=0", | ||||
| 		config.DatabaseSettings.Host, | ||||
| 		config.DatabaseSettings.User, | ||||
| 		config.DatabaseSettings.Pass, | ||||
| 		config.DatabaseSettings.DB, | ||||
| 		config.DatabaseSettings.Port, | ||||
| 	)) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	db, err := DBConn.DB() | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	db.SetMaxIdleConns(config.DatabaseSettings.MaxIdleConns) | ||||
| 	db.SetMaxOpenConns(config.DatabaseSettings.MaxOpenConns) | ||||
| 	DBConn.Ping() | ||||
| 	DBConn.SetMaxIdleConns(config.DatabaseSettings.MaxIdleConns) | ||||
| 	DBConn.SetMaxOpenConns(config.DatabaseSettings.MaxOpenConns) | ||||
| 	DBConn.SetConnMaxLifetime(60 * time.Second) | ||||
|  | ||||
| 	return nil | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user