LINUX GNU在Makefile中创建新用户Postgres DB
我是Makefile的新手。我需要为postgres终端自动创建用户 我尝试了这个例子,但它对我不起作用:LINUX GNU在Makefile中创建新用户Postgres DB,linux,postgresql,unix,makefile,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)" 无论是@还是创建用户myusern
createuser:
@echo "$(OK_COLOR)==> create user$(NO_COLOR)"
@psql mydbdevelopmentname
@create user myusername;
@/q
@echo "$(OK_COLOR)==> Done$(NO_COLOR)"
无论是@还是创建用户myusername代码>或@/q
起作用
当我运行make createuser
并使用\q从postgres终端手动退出时,我收到以下错误:
/bin/sh:create:未找到命令
make:**[createuser]错误127
调试makefiles时,@
修饰符没有帮助,因为它在执行这些命令之前不再显示这些命令
我怀疑您实际上想将create user myusername
传递到psql
行,但您将其作为单独的命令编写。您需要确保psql
看到它:
psql -c "create user myusername" mydbdevelopmentname
不要忘记将目标声明为.PHONY
的依赖项
顺便说一句,Make作为脚本语言通常是一个糟糕的选择——它更适合于从依赖项生成目标,因为它的设计目的就是这样。这种情况更适合于Bash或Python之类的语言。我现在遇到了不同的错误psql:FATAL:role“create user myusername”不存在make:**[createuser]错误2
将其与MySQL混淆了-我的意思是-c
,而不是-e
(如果您不介意的话,手册页会告诉您)。