feat: main.go 条件初始化 PostgreSQL 连接池

- 添加 store 包导入
- 当 storage.driver 为 postgres 时创建 pgxpool
- 使用 defer 确保连接池正确关闭
- 添加日志记录连接状态
This commit is contained in:
hhs
2026-06-14 16:43:07 +08:00
parent bf1e24453c
commit 0ff810a297

View File

@@ -19,6 +19,7 @@ import (
"github.com/hhs/camtalk/internal/logger" "github.com/hhs/camtalk/internal/logger"
"github.com/hhs/camtalk/internal/orchestrator" "github.com/hhs/camtalk/internal/orchestrator"
"github.com/hhs/camtalk/internal/session" "github.com/hhs/camtalk/internal/session"
"github.com/hhs/camtalk/internal/store"
"github.com/hhs/camtalk/internal/ws" "github.com/hhs/camtalk/internal/ws"
) )
@@ -44,6 +45,21 @@ func main() {
"addr", cfg.Server.Addr(), "addr", cfg.Server.Addr(),
) )
// 初始化存储层(条件初始化 PostgreSQL
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
if cfg.Storage.Driver == "postgres" {
pool, err := store.NewPostgresPool(ctx, cfg.Storage.DSN)
if err != nil {
logger.Log.Fatalw("failed to connect to postgres", "error", err)
}
defer pool.Close()
logger.Log.Infow("postgres connected", "driver", cfg.Storage.Driver)
// TODO: Phase 2 - 初始化 UserRepository 和 MessageRepository
_ = pool
}
// 初始化 Session ManagerMVP 默认内存实现) // 初始化 Session ManagerMVP 默认内存实现)
var sessionMgr session.Manager var sessionMgr session.Manager
// TODO: 当 Redis 配置非空时切换为 RedisManager // TODO: 当 Redis 配置非空时切换为 RedisManager