次の例を考えてみましょう(psqlスクリプトの最初から)。
\c :db_to_run_on
TRUNCATE the_most_important_table;
-- tried to avoid similarities to anything that exists out there
これをコマンドで実行すると
psql [connection details] -v db_to_run_on=\'dev_database\'
その後、それは実行され、ユーザーは満足しています。しかし、もし彼が特定することを決定した場合はどうなります-v db_to_run_on=production_database
か?(人々がrm -rf / # don't try this at home!!!
たまに実行するように、これが起こる可能性があると仮定しましょう。)うまくいけば、そのテーブルの新しいバックアップがあるでしょう...
したがって、問題が発生します。スクリプトに渡された変数を確認し、その値に基づいて以降の処理を停止する方法は?
\set ON_ERROR_STOP on
-いいね!