Hello! How do I redirect logical decoding output from the PostgreSQL CLI tool pg_recvlogical
either to a file or to another command via a pipe? I ask because when I try the obvious, no output is recorded or sent:
pg_recvlogical -d postgres --slot test --start -f - >> sample.jsonl
Lest there be any confusion, I already created the slot in an earlier step. Moreover, I can verify that if I omit the output redirection >> sample
then it does work, insofar as it emits the expected change events when I perform DML in another terminal window. When I include the redirection (or alternatively, set up a pipeline), then nothing happens.
Note that I am aware of the option to pass a filename to the -f switch to write to a file. That works, but it's not what I'm after because it doesn't help update my mental model of how this is supposed to work. Based on my current (flawed) mental model built up from command line experience with other tools, this should work. I should be able to send the output to stdout and then redirect it to a file. It surprises me that I cannot.
Anyway, thanks!
Best,
David