A focused explanation of PostgreSQL's `client_min_messages` GUC parameter, which controls what message levels are sent back to a client session — not what the server logs. Key gotchas covered: `LOG` has an inverted rank compared to `log_min_messages`, and `INFO` messages (like those from `VACUUM VERBOSE`) always reach the client regardless of the setting. The practical recommendation is to use `SET client_min_messages = WARNING;` at the top of migration scripts to suppress noisy NOTICE spam while preserving genuine warnings, and to avoid setting it globally to ERROR, which silences important WARNING-level signals.
1 Impression