Consideremos el siguiente ejemplo (desde el comienzo de un script psql):
\c :db_to_run_on
TRUNCATE the_most_important_table;
-- tried to avoid similarities to anything that exists out there
Ahora si es ejecutado esto por el comando
psql [connection details] -v db_to_run_on=\'dev_database\'
entonces simplemente se ejecuta y el usuario está contento. Pero, ¿qué pasa si decide especificar -v db_to_run_on=production_database
? (Supongamos que esto puede suceder, al igual que las personas corren rm -rf / # don't try this at home!!!
ocasionalmente.) Esperemos que haya una copia de seguridad nueva de esa tabla ...
Entonces surge la pregunta: ¿cómo verificar las variables pasadas a un script y detener el procesamiento posterior en función de su valor?
\set ON_ERROR_STOP on
- ¡bonito!