Linuxで古くなった在庫管理アプリケーションを使用しています。他のソフトウェアと通信するためにテキストファイルにしか印刷できません。 PostgreSQLデータベースのテーブルを更新する必要がある場合、私はpsql -f text_file
を使用しています(text_file
は以前のアプリケーションで生成されたSQLコマンドのファイルです)。これはうまく動作しますが、各テキストファイルを完了した後でpsqlセッションが終了すると遅くなります。私は、入力を待って終了しないバックグラウンドプロセスとしてpsqlセッションを呼び出す方法があるのだろうかと思っていました。PostgreSQLのバックグラウンドセッション
答えて
私はあなたが何を望んでいるのか正確にはわかりません。あなただけの処理、使用を必要とするファイルの束がある場合:あなただけ継続的にpsqlを実行するために欠けていると、それはファイルの変更を実行している場合は
cat *.sql | psql -f -
を、このような何かが働く可能性があります
(
while sleep 5; do
print "\i sql_file.sql;"
cat /dev/null > sql_file.sql
done
) | psql --file -
私はこれがどれほど推奨されているか分かりません。
あなたのデータベース、次々に対してSQLファイルの束を実行したい場合は、私はインタラクティブコンソールとしてpsql
を起動します:
psql mydatabase
そしてthe \i commandで他の後に一つのファイルを実行します。
\i text_file
スクリプト/物事を自動化したい場合は、FIFOは何が必要かもしれません。私はmore about that hereと書いた。
コプロセッサのようなCraig Ringer describes hereに興味があるかもしれません。
ちょっと不思議なことに、すべてのファイルを 'psql -f -'に一度にキャッチするだけの方がいいのはなぜですか? –
@TimPote:続行する前に各ファイルの結果をチェックしたり、ファイルを特定の順序で実行する必要がある場合、またはそれらのすべてが同時に使用可能でない場合、または同じファイル(内容が変更されている)が繰り返し使用されます。私はそれを参照するために私のイントロで "次々と"を書きました。 –
+1名前付きパイプ –
- 1. uploadTaskWithRequestバックグラウンドセッションfromFileクラッシュ
- 2. SIGABRT:NSDataからのアップロードタスクは、バックグラウンドセッションではサポートされていません。
- 3. バックグラウンドセッション構成のNSURLSessionが接続がないときにエラーを返さない
- 4. のPostgreSQL 9.4 PostgreSQLの
- 5. バックグラウンドセッションでダウンロードタスクを区別するにはどうすればよいですか?
- 6. PostgreSQLのレプリケーションツールPostgreSQLのWikiに
- 7. PostgreSQLデータベースへのPostgreSQLデータベースへのPostgreSQLデータベースへのPostgreSQLのアクションへの投稿
- 8. エラー:私のPostgreSQL 9.5データベースにPostgreSQLの
- 9. PostgreSQLの
- 10. PostgreSQLの
- 11. postgresqlの
- 12. Postgresqlの
- 13. Postgresqlの
- 14. のPostgreSQL:
- 15. - PostgreSQLの
- 16. のpostgresql
- 17. PostgreSQLの
- 18. PostgreSQLの
- 19. のPostgreSQL:
- 20. postgreSQLの
- 21. :PostgreSQLの
- 22. + PostgreSQLの
- 23. PostgreSQLの
- 24. PostgreSQLの
- 25. PostgreSQLの
- 26. PostgreSQLの
- 27. 、Postgresqlの
- 28. Postgresqlの:
- 29. Postgresqlの
- 30. - PostgreSQLの
+1ファイルの束を特定の順番で実行したいのであれば、その間に結果をチェックしたくない場合は、 'cat'ルートが最も簡単な解決策になります。 –
おかげでティム、私はアプリケーションのSQLステートメントを生成し、それらを擬似プリンタpsql -fに配管することができます。これによりオーバーヘッドが大幅に削減されます。 – WoodWork