diff --git a/backend/cmd/server/main.go b/backend/cmd/server/main.go index 829c415..8091719 100644 --- a/backend/cmd/server/main.go +++ b/backend/cmd/server/main.go @@ -19,6 +19,7 @@ import ( "github.com/hhs/camtalk/internal/logger" "github.com/hhs/camtalk/internal/orchestrator" "github.com/hhs/camtalk/internal/session" + "github.com/hhs/camtalk/internal/store" "github.com/hhs/camtalk/internal/ws" ) @@ -44,6 +45,21 @@ func main() { "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 Manager(MVP 默认内存实现) var sessionMgr session.Manager // TODO: 当 Redis 配置非空时切换为 RedisManager