func New()

in internal/database/database.go [126:156]


func New(cfg config.DatabaseConfig) (*DB, error) {
	var db *sql.DB
	var err error

	handler, ok := dialectHandlers[cfg.Dialect]
	if !ok {
		return nil, fmt.Errorf("unsupported dialect: %s", cfg.Dialect)
	}

	if strings.HasPrefix(cfg.Dialect, "cloudsql") && cfg.CloudSQLInstanceConnectionName != "" {
		db, err = handler.CreateCloudSQLPool(cfg)
	} else {
		db, err = handler.CreateStandardPool(cfg)
	}

	if err != nil {
		return nil, err
	}

	// Test the connection and setup pool
	db, err = createPool(db)
	if err != nil {
		log.Println("ERROR: Failed to create connection pool:", err)
		return nil, err
	}

	return &DB{
		DB:             db,
		DialectHandler: handler,
	}, nil
}