On Wed, Oct 1, 2014 at 6:56 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
On Tue, 2014-09-30 at 18:51 -0600, Jason Mathis wrote: > How are you automating? Have you looked at puppet or anything? Puppet > labs maintains a postgresql module that has all that baked in. Check > it out at least it can give you some ideas.
Their "idea" is to maintain a hard-coded list about which parameter changes need a restart, and their list is wrong.
I'm deploying Postgres with Ansible, so Puppet doesn't help.
The idea of maintaining a list of parameters which require a restarts is ok for automation, since you usually only change a few of them. I also have a list of those parameters which can be changed by Ansible and I would like to detect if any of them changed, so I know I need to restart. Or it would be even better if Postgres can tell me if it requires a restart to apply all parameter changes, something like when you send SIGHUP and in the log it tells you that a parameter can only be changed after restart. But I can see that doesn't exist.
I have a relatively easy solution for this with Ansible. Ansible saves the values of all parameters which require a restart in one file and I just check if that file changed, but the problem with this is that if I change this file for any other reason, it could restart Postgres even if it doesn't need a restart. The right way is to parse the postgresql.conf and compare the values with pg_settings, but I was hoping to avoid that.