私はpg_restoreを実行するPythonスクリプトを書いています。リストアが完了したら、PythonスクリプトでいくつかのCREATE文とGRANT文を実行してDBユーザを作成します。pg_restoreが完了したときにプログラムで知る方法
*私はAWSから移行しており、pg_dumpallは許可されていないため、pg_dumpallを使用してそれらをダンプに追加することはできません。だから、私は個々の特権をプルダウンし、テンプレート/辞書を使ってスクリプトを書かなければならなかった。
**私の質問:Pythonスクリプトがpg_restoreコマンドが完了したことをチェックして、コードの次の部分に移動できる方法はありますか?今すぐ、pg_restoreが起動されるとすぐに、SUCCESSを返します。私はこれについて何かを見つけることができませんでした。通常、SQL Serverでは、完了するために何か(通常はJobAgent)を待つ必要があるときに、ループで待機します。
ありがとうございました
こんにちは。これをトップに打ち込むだけです。誰かがこの質問で私を助けてくれますか?私は本当に立ち往生しています。私はこの問題についてGoogleに助けを求める方法を使い果たしました。ありがとうございました – Wendy
こんにちは。もう一度トップにぶつかる。誰かが私のPythonスクリプトがpg_dumpが処理を完了したときにプログラマチックにどのように伝えることができるか知っていますか?私は、pg_dumpコマンドを実行するためにsubprocess.Popenを使用します。コマンドが完了するまで、強制的に一時停止する方法がありますか? – Wendy
これは私が思ったよりもはるかに単純な解決策を持っているようです。誰か他の人が同様の質問でこの投稿に出くわした場合、私はここで私の解決方法を分かち合うつもりです。 pg_dumpコマンドを実行するためにsubprocess.Popenを使用する代わりに、私はsubprocess.check_callを使う必要がありました。 [doc](https://docs.python.org/3.4/library/subprocess.html)に明示的に "引数を指定してコマンドを実行します。コマンドが完了するまで待ちます。戻りコードが0の場合はそれを返し、そうでない場合はraise CalledProcessError " – Wendy