--- name: postgres_open kind: function lang: go domain: infra version: "1.0.0" purity: impure signature: "func PostgresOpen(host string, port int, user, password, dbname string, sslmode string) (*sql.DB, error)" description: "Conecta a PostgreSQL construyendo el DSN desde parametros individuales. sslmode por defecto 'disable' si vacio." tags: [database, postgres, postgresql, connection, sql, pendiente-usar] uses_functions: [] uses_types: [db_config_go_infra] returns: [] returns_optional: false error_type: "error_go_core" imports: ["database/sql", "github.com/jackc/pgx/v5/stdlib"] params: - name: host desc: "hostname del servidor PostgreSQL" - name: port desc: "puerto del servidor (5432 por defecto)" - name: user desc: "nombre de usuario para autenticacion" - name: password desc: "contraseƱa para autenticacion" - name: dbname desc: "nombre de la base de datos" - name: sslmode desc: "modo SSL (disable, require, verify-full o vacio para disable)" output: "conexion sql.DB abierta a PostgreSQL" tested: false tests: [] test_file_path: "" file_path: "functions/infra/postgres/postgres_open.go" --- ## Ejemplo ```go db, err := PostgresOpen("localhost", 5432, "user", "secret", "mydb", "disable") if err != nil { log.Fatal(err) } defer DBClose(db) rows, err := DBQuery(db, "SELECT id, name FROM users WHERE active = $1", true) ``` ## Notas Usa el driver `github.com/jackc/pgx/v5/stdlib` registrado como "pgx". Construye DSN con los parametros separados para mayor legibilidad. Para produccion usar `sslmode=require` o `sslmode=verify-full`. Hace ping al abrir para verificar conectividad.