Initial commit: Material Texture API service
- Go + Gin + GORM + PostgreSQL backend - RESTful API for material management - Docker deployment support - Database partitioning for billion-scale data - API documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
33
internal/config/database.go
Normal file
33
internal/config/database.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"gorm.io/driver/postgres"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/logger"
|
||||
)
|
||||
|
||||
func NewDatabase(cfg *Config) *gorm.DB {
|
||||
db, err := gorm.Open(postgres.Open(cfg.DatabaseURL), &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Info),
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to connect to database: %v", err)
|
||||
}
|
||||
|
||||
sqlDB, err := db.DB()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to get database instance: %v", err)
|
||||
}
|
||||
|
||||
// 连接池配置 (优化: 支持更高并发)
|
||||
sqlDB.SetMaxIdleConns(50) // 空闲连接数 (原 10)
|
||||
sqlDB.SetMaxOpenConns(200) // 最大连接数 (原 100)
|
||||
sqlDB.SetConnMaxLifetime(5 * time.Minute) // 连接最大生命周期
|
||||
sqlDB.SetConnMaxIdleTime(2 * time.Minute) // 空闲连接最大生命周期
|
||||
|
||||
log.Println("Database connected successfully")
|
||||
return db
|
||||
}
|
||||
Reference in New Issue
Block a user