2017-06-26 51 views
1

我試圖通過編寫以下腳本(setup.sh)添加Postgres的擴展添加Postgres的擴展:如何通過sh文件

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的東西來運行上面的代碼。另外,當我手動輸入這些命令時,它會成功創建擴展。感謝有幫助的人。

回答

2

嘗試:

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