【发布时间】:2019-11-19 23:26:25
【问题描述】:
从 bash 脚本运行 psql 时,我需要检查错误。以下是我们如何在脚本中运行的示例:
return_value=$(psql \
-X \
$POSTGRES_CONNECTION_STRING \
-f ./build_table.sql \
-w \
-b \
-A \
-q \
-t \
)
psql_exit_status=$?
上述语句工作正常除非 sql 脚本中有错误,在这种情况下,我会在控制台上得到一些错误输出,但return_value 设置为零,psql_exit_status 也是如此。
build_table sql 脚本创建一个表并从 csv 文件导入数据——如果 csv 文件中存在错误,或者我故意在 sql 脚本中拼错 create tableeeee 我看到 psql 错误据我所知,屏幕没有返回任何错误信息。
我尝试在 psql 中使用 -o 标志输出到文件。什么都没有显示,它是一个空白文件。我还尝试在 psql 语句之后添加一个2>&1 位,以查看是否可以通过这种方式获得一些错误信息,但什么也没做。
我需要的是某种方式来判断 sql 脚本已异常退出和/或崩溃,而无需查看屏幕上的输出。这可能与我执行 psql 的方式有关吗?我的 psql 标志之一可能有问题?
【问题讨论】:
-
我不知道
psql,但它的手册页建议您可能需要启用ON_ERROR_STOP才能在这种情况下退出并出现错误。
标签: bash postgresql psql