2017-10-19 17 views
2

Gradle(バージョン4.2.1)のリモートデータベースでSQLスクリプトを実行する必要があります。そこで、私はExecタスクで試してみました。このタスクは、データベースがローカルマシン上にある場合に機能します。リモートホストでは、タスクは開始していません。Gradle Execタスクがリモートホスト上でpsqlで始まらない

これらはタスクです(最初のタスクは完全に機能します)。

task psqlLocalExec(type: Exec) { 
    commandLine 'cmd', '/c', 'psql -f myscript.sql' 
} 

task psqlRemoteExec(type: Exec) { 
    commandLine 'cmd', '/c', 'psql -h my.remote.host -f myscript.sql' // not working 
} 

コマンドライン出力(私はいくつかの分後にそれをキャンセル):CMDで

C:\myproject>gradlew :proj:psqlRemoteExec --stacktrace 
<-------------> 0% EXECUTING [3m 43s] 
> :proj:psqlRemoteExec 

(のGradleなし)コマンドの機能。

+0

が 'コマンドライン 'CMD'、 '/ C'、 'psqlの'、 '-h'、 'my.remote.host'、 '-f' を試してみてください、 'myscript.sql''または 'commandLine' cmd/c psql -h my.remote.host -f myscript.sql'.split( '') –

+0

残念ながら、同じ否定的な結果が出ています。 – deve

+0

コマンドラインからgradleなしでコマンドを実行できますか? –

答えて

1

私のPassword File Configurationは、スクリプトで間違っていました。環境変数を設定することができることを修正するには:

task psqlRemoteExec(type: Exec) { 
    environment 'PGPASSFILE', 'path/to/pgpass.conf' 
    commandLine 'cmd', '/c', 'psql -h my.remote.host -f myscript.sql' 
} 
+0

あなた自身の答えを受け入れることで、この問題を解決済みとマークすることができます。 – Henry

関連する問題