繁体   English   中英

无法让 psql 命令在 bash 脚本中运行

[英]Cannot get psql command to run in bash script

我是 bash 脚本方面的新手,所以请耐心等待。 我正在尝试编写一个脚本来使用psql执行一个 sql 文件。 从我的终端,它工作正常:

psql -f /path/to/file.sql "$URI"

但是,在我的脚本中,我有这样的事情:

dbURI="postgres://some.connection.string"
psql -f /path/to/file.sql $dbURI

但我不断得到这样的输出:

psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

我似乎根本无法让它发挥作用。 我试过用引号将变量包装起来,使用$(command)等,但没有运气。

尝试在脚本中使用以下内容禁用通配符

psql -f /path/to/file.sql "$dbURI"

我刚刚遇到了同样的问题,错误消息完全相同。 问题是 Postgresql 需要几秒钟才能启动。 因此,如果您启动 postgresql 并在同一脚本中使用 psql 命令,则很可能在您调用它时 postgre 尚未启动。

解决方案包括:

sleep 5

在 psql 命令之前。 在您的情况下,这将是:

sleep 5
psql -f /path/to/file.sql "$URI"

这给了 postgre 在你使用它之前启动的一些时间。

我看到这个话题已经有 2 年了,但以防万一其他人面临同样的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM