LINUX GNU在Makefile中创建新用户Postgres DB

时间:2016-11-30 15:59:15

标签: linux postgresql unix makefile

我是Makefile的新手。我需要为postgres终端自动创建用户。

我尝试了这个例子但它对我不起作用:

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终端手动退出时,我收到此错误:

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

1 个答案:

答案 0 :(得分:1)

调试makefile时,@修饰符无用,因为它在执行前不再显示这些命令。

我怀疑您确实想将create user myusername传递到psql行,但是您将其作为单独的命令编写。您需要确保psql看到它:

psql -c "create user myusername" mydbdevelopmentname

不要忘记将目标声明为.PHONY的依赖关系。

我顺便提一下,Make通常是一个很糟糕的选择,可以用作脚本语言 - 它可以更好地从依赖项中创建目标,就像它的设计目标一样。这种事情更适合Bash或Python等语言。