2016-11-30 76 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