Gradle Exec任务未在远程主机上以psql启动

Gradle Exec任务未在远程主机上以psql启动,gradle,cmd,psql,Gradle,Cmd,Psql,我需要在Gradle(版本4.2.1)中的远程数据库上执行SQL脚本。所以我尝试了执行任务。当数据库在我的本地计算机上时,该任务可以工作。对于远程主机,任务不会启动 这些是任务(第一个工作非常好) task psqlllocalexec(类型:Exec){ 命令行'cmd','c','psql-f myscript.sql' } 任务psqlmoteexec(类型:Exec){ 命令行'cmd','/c','psql-h my.remote.host-f myscript.sql'//不工作 }

我需要在Gradle(版本4.2.1)中的远程数据库上执行SQL脚本。所以我尝试了执行任务。当数据库在我的本地计算机上时,该任务可以工作。对于远程主机,任务不会启动

这些是任务(第一个工作非常好)

task psqlllocalexec(类型:Exec){
命令行'cmd','c','psql-f myscript.sql'
}
任务psqlmoteexec(类型:Exec){
命令行'cmd','/c','psql-h my.remote.host-f myscript.sql'//不工作
}
命令行输出(几分钟后我取消了它):

C:\myproject>gradlew:proj:psqlRemoteExec--stacktrace
0%正在执行[3m 43s]
>:proj:psqlmoteexec
在cmd(不带Gradle)上,该命令有效。

My在脚本中出错。要修复可以设置环境变量的问题,请执行以下操作:

任务psqlmoteexec(类型:Exec){
环境'PGPASSFILE','path/to/pgpass.conf'
命令行'cmd','c','psql-h my.remote.host-f myscript.sql'
}

Try
commandLine'cmd'、'/c'、'psql'、'-h'、'my.remote.host'、'-f'、'myscript.sql'
commandLine'cmd/c psql-h my.remote.host-f myscript.sql'。split(包括
cmd/c
)要执行的操作系统。请确保在命令行测试中包含此项。我猜您需要将选项传递到
psql
以在执行脚本后退出。我看到您键入
\q并输入
以从命令行退出。我猜可能有命令行选项可自动退出,或者其他什么您可以添加到SQL脚本的末尾
C:\myproject>gradlew :proj:psqlRemoteExec --stacktrace
<-------------> 0% EXECUTING [3m 43s]
> :proj:psqlRemoteExec