Fazer backup do Postgres com docker exec -t e redirecionar para arquivo
corrompe o dump: o -t aloca um pseudo-TTY, que faz tradução de fim de linha e
troca todo \n por \r\n.
# errado: dump inteiro sai com CRLF, pode restaurar mal
docker exec -t pg pg_dump -U postgres db > dump.sql
# certo: sem -t
docker exec pg pg_dump -U postgres db > dump.sql
O -t só faz sentido quando você quer um terminal interativo. Para capturar
saída em arquivo ou pipe, sempre sem ele. Confere com file dump.sql — deve
dizer “ASCII text”, não “ASCII text, with CRLF line terminators”.