如果您要连接到主数据库而不是副本,我想显示不同的消息 - 可能在主数据库上使用红色提示,在副本上使用中性色。
有没有办法在.psqlrc
中设置?
if `dbname` == 'prod'
\set PROMPT1 'danger danger'
else
\set PROMPT1 'foo'
fi
谢谢!
答案 0 :(得分:0)
这是一种方法...在#postgresql IRC频道中从MatheusOl获取答案。如果您在副本上,此代码将显示蓝色提示;如果您位于主节点上,则此代码将显示红色提示。
SELECT CASE WHEN pg_is_in_recovery()
THEN '%[%033[33;1m%]%x%[%033[0m%]%[%033[34m%]%/%[%033[0m%]%R%# '
ELSE '%[%033[33;1m%]%x%[%033[0m%]%[%033[31m%]%/%[%033[0m%]%R%# '
END AS "PROMPT1" \gset
其中的关键区别是34(蓝色ANSI转义序列)与31(红色ANSI转义序列)。
请注意,如果使用libedit,那么ANSI转义序列可能会使用你的上/下/键盘快捷键,这是Mac OS X,Postgres.app和旧版Homebrew的默认设置。有关详细信息,请参阅Colors in the psql prompt。