Estoy tratando de conectarme a mi base de datos de postgres usando el paquete jackc/pgx y estoy siguiendo el ejemplo provisto. El problema es que el código se atasca en la llamada de conexión. Intenté imprimir algo justo después y no se imprime.
var dbURL string = fmt.Sprintf("postgresql://%s:%s@%s:%s/%s", user, password, host, port, dbname) fmt.Println(dbURL) conn, err := pgx.Connect(context.Background(), dbURL) if err != nil { fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err) os.Exit(1) } defer conn.Close(context.Background()) var text string err = conn.QueryRow(context.Background(), "select text from questions where id=$1", 1).Scan(&text) if err != nil { fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err) os.Exit(1) } fmt.Println(text)Producción:
postgresql://postgres:password@127.0.0.1:52269/database_name¿Qué estoy haciendo mal? Puedo conectarme a la base de datos con pgAdmin 4 y me conecté antes de usar el sql estándar de go.
connectionString := fmt.Sprintf("user=%s password=%s dbname=%s sslmode=disable", user, password, dbname) a.DB, err = sql.Open("postgres", connectionString)La documentación para pgx dice que tanto la cadena de conexión como la URL están permitidas
https://pkg.go.dev/github.com/jackc/pgx/v4/pgxpool@v4.11.0#ParseConfig
usuario = jack contraseña = host secreto = pg.example.com puerto = 5432 dbname = mydb sslmode = verificar-ca pool_max_conns = 10
postgres://jack:secret@pg.example.com:5432/mydb?sslmode=verify-ca&pool_max_conns=10