我正在尝试添加外部 SQL 格式化实用程序管理员组。
pgAdmin3 中有一个可用的选项,Preferences -> Query tool -> Query editor
名为external formatting utility
我设置了python工具sql解析。它有一个名为 的命令行实用程序sqlformat
。pgAdmin3需要外部格式化实用程序接受stdin
并sqlformat --help
说
使用“-”作为文件从标准输入读取。
当我写的时候:
sqlformat -
...作为外部格式化实用程序我收到错误
execvp(sqlformat, -) failed with error 2!
当我尝试将它包装在 shell 脚本中时,如下所示:
#!/bin/bash
sqlformat --reindent --keywords upper --identifiers lower -
...我收到错误
line 2: sqlformat: command not found
尽管如此,当我直接调用它时,我的 shell 脚本仍然有效:
cat in.sql | ~/sqlformat.sh > out.sql
如何修复它?
答案1
我仍然不知道如何sqlformat
直接调用管理员组为什么sqlformat
在 shell 脚本中调用时不可用管理员组,但我已经找到了解决方案。
使用以下命令查找实用程序的完整路径:
type -a sqlformat
替换 shell 脚本中实用程序的路径:
#!/bin/bash
/usr/local/bin/sqlformat --reindent --keywords upper --identifiers lower -
并将这个 shell 脚本传递到管理员组
答案2
您不需要脚本,只需添加到“外部格式化实用程序”字段即可:
sqlformat --reindent --keywords upper --identifiers lower -
这对我有用。