发生错误时如何停止并退出postgresql恢复

jit*_*iri 3 postgresql pg-dump psql postgresql-10

我们正在尝试使用以下命令从命令行将 PostgreSQL 模式转储恢复到数据库中

psql -U postgres -d dbname < filename
Run Code Online (Sandbox Code Playgroud)

我们在恢复过程中在命令行中得到响应,如下所示

psql -U postgres -d dbname < filename
Run Code Online (Sandbox Code Playgroud)

并继续

我的问题是,如果在恢复和恢复继续进行之间发生了一些错误,如何在不通过命令行滚动这些整个响应的情况下检测该错误?或者如果发生错误,是否有自动停止并退出恢复过程?

我们正在使用 PostgreSQL 10

a_h*_*ame 5

您可以做两件事:

首先将整个脚本作为单个事务运行:

psql --single-transaction -U postgres -d dbname < filename
Run Code Online (Sandbox Code Playgroud)

此外,您可以配置psql为在发生错误时中止:

\set ON_ERROR_STOP on
Run Code Online (Sandbox Code Playgroud)

您需要将 放入\set正在运行的文件中。

或者,如果您总是想要这种行为,请将其放入~/.psqlrc