带有日志重定向的 Postgres 复制命令

Postgres Copy command with Log redirection

我正在使用 Postgres 复制实用程序将数据从 CSV 文件加载到 Postgres table。当前正在使用以下命令

psql -h 127.0.0.1 -d target -U postgres -c "\copy TableName FROM 'E:\Dev\XXX_1_0.csv'  delimiter '^'" -o E:/Dev/XXX.log

当数据出现问题时,错误信息不会在日志文件中更新。 而当没有错误时,我的日志文件会更新加载的行数。例如 (COPY 25)

我试图从命令提示符执行上述命令,但报告了以下错误。 让我知道如何获取错误信息或将错误重定向到日志文件以供参考。

ERROR:  value too long for type character varying(255)
CONTEXT:  COPY TableName, line 2, column Name: "NickName..."

我不知道在 psql 中直接重定向错误输出的方法。你可以让你的 shell 为你做这件事。

这可以将 stdout 和 stderr 合并到一个名为“log”的文件中。它适用于 bash 和 Windows CMD:

psql -c "whatever" > log 2>&1