2016-11-30 75 views
-1

我是新與Makefile中創建新用戶的Postgres數據庫。我需要爲postgres終端自動創建用戶。LINUX GNU Makefile中

我試過了這個例子,並沒有爲我工作:

createuser: 
    @echo "$(OK_COLOR)==> create user$(NO_COLOR)" 
    @psql mydbdevelopmentname 
    @create user myusername; 
    @/q 
    @echo "$(OK_COLOR)==> Done$(NO_COLOR)" 

無論@create user myusername;也不@/q作品。

當我手動make createuser和出口跑了從postgres的終端\ Q,I收到此錯誤:

/bin/sh: create: command not found 
make: *** [createuser] Error 127 

回答

1

調試時生成文件時,@改性劑是無益的,因爲它不再示出了執行它們之前的那些命令。

我懷疑你實際上是想通過create user myusername到你的psql行,但是你把它作爲一個單獨的命令寫下來。你需要確保psql看到它:

psql -c "create user myusername" mydbdevelopmentname 

不要忘了申報你的目標爲.PHONY依賴。

我會順便注意,使通常是一個糟糕的選擇作爲腳本語言的使用 - 這是很多從它們的依賴使得目標更好,因爲它的設計。這種東西更適合於諸如Bash或Python之類的語言。

+0

現在我得到了不同的錯誤'psql:致命:角色「創建用戶myusername」不存在 使:*** [createuser]錯誤2' – Skipoura

+1

混合它與MySQL - 我的意思是'-c',不'-e'(如手冊頁會顯示您是否要打擾)。 –

+0

謝謝!!有效! – Skipoura