我在多个环境中安装了postgres。在每个环境中,我都有2个以上的数据库。
如果我拥有超级用户数据库权限,是否有办法在给定的postgres安装上为所有数据库安装CITEXT扩展?
截至目前,一旦登录到环境和postgres控制台,我必须为每个数据库运行CREATE EXTENSION IF NOT EXISTS citext;
。
答案 0 :(得分:12)
CREATE
命令确实需要在每个数据库上单独运行,但您可以使用shell脚本轻松自动执行此操作,例如:
for DB in $(psql -t -c "SELECT datname FROM pg_database WHERE datname NOT IN ('postgres', 'template0', 'template1')"); do
psql -d $DB -c "CREATE EXTENSION IF NOT EXISTS citext"
done
如果您希望在创建新数据库时默认包含citext
,则还可以在template1
中安装扩展程序。