如何通过.sh文件添加Postgres扩展

时间:2017-06-26 04:35:37

标签: postgresql shell psql

我尝试通过编写以下脚本(setup.sh)来为Postgres添加扩展名:

sudo -u postgres psql my_database
CREATE EXTENSION adminpack;

当我进行流浪时,它应该运行并通过运行脚本自动添加扩展。但是,我收到了错误消息

==> default: ERROR:  syntax error at or near "exit"
==> default: LINE 1: exit
==> default:         ^
==> default: /tmp/vagrant-shell: line 24: CREATE: command not found

请注意我已经安装了所有必要的postgres内容来运行上面的代码。另外,当我手动输入这些命令时,它会成功创建扩展名。感谢有帮助的人。

1 个答案:

答案 0 :(得分:3)

尝试:

sudo -u postgres psql my_database -c "CREATE EXTENSION adminpack"

https://www.postgresql.org/docs/current/static/app-psql.html

  

-c command

     

- 命令=命令

     

指定psql将执行给定的命令字符串命令。

还考虑将-f sql_file.sql用于更复杂的脚本,或者像:

psql <<EOF
\x
SELECT NOW();
SELECT * FROM foo;
EOF