我尝试通过编写以下脚本(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内容来运行上面的代码。另外,当我手动输入这些命令时,它会成功创建扩展名。感谢有帮助的人。
答案 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