如何在 postgresql 脚本中使用 bash 调用的参数?

How to use a argument from bash call in postgresql script?

我有以下 bash 脚本调用。

psql -U postgres postgres < ../dump_script.sql -v test=1 >/dev/null

dump_script.sql-脚本中,我有以下代码:

\set dbName 'db_dev'

IF :test = 1 THEN
    dbName := 'db_test'
END IF;

如果我不使用 test 参数,一切都会按预期工作,常规开发数据库已构建 - 如果我将 test 提供给脚本,则会抛出以下错误。

ERROR:  syntax error at or near "IF"
LINE 1: IF 1 = 1 THEN

我做错了什么?

这个答案是可能的,因为来自@jjanes

的提示
\set dbName 'dbDev'

SELECT :test = 1 AS is_test_run \gset

\if :is_test_run
    \set dbName 'dbTest'
\endif

这符合预期!