【发布时间】:2019-09-19 03:21:43
【问题描述】:
我正在使用以下命令加载导出的数据库:
psql -c 'drop database database1'
psql -c 'create database database1'
psql database1 < script.sql
现在我正在尝试检查最终命令是否成功:
if [[ $? -eq 0 ]]; then
echo "OK."
else
echo "Not OK."
fi
这总是输出“OK”。退出代码始终为 0,即使 script.sql 以错误完成:
psql database1 < script.sql
ERROR: constraint "test_id" for relation "test" already exists
echo $?
0
如何确认sql导入成功?
【问题讨论】:
-
这个帖子可能有帮助:stackoverflow.com/questions/4480381/…
-
Check return status of psql command in unix shell scripting 的可能重复项简而言之:改为尝试:
psql -v "ON_ERROR_STOP=1" database1 < script.sql并测试其结果。你应该得到返回码3。请参阅我标记的副本以获取更多信息。 -
看起来它没有正确设置返回码。解析输出文本或将其配置为返回正确的错误代码。
标签: bash postgresql psql