Re: Question on postgresql.conf

From: Steven Lembark <lembark(at)wrkhors(dot)com>
To: Alvaro Aguayo Garcia-Rada <aaguayo(at)opensysperu(dot)com>
Cc: pgsql-general(at)postgresql(dot)org, "Lu, Dan" <Dan(dot)Lu(at)sig(dot)com>, lembark(at)wrkhors(dot)com
Subject: Re: Question on postgresql.conf
Date: 2018-08-01 07:37:18
Message-ID: 20180801023718.0664ed27@wrkhors.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, 31 Jul 2018 00:02:47 -0500 (PET)
Alvaro Aguayo Garcia-Rada <aaguayo(at)opensysperu(dot)com> wrote:

> Hi.
>
> As far as I know, it's not currently possible. Maybe recompiling, but
> that could not be the best for production environment. I suppose this
> is this way becuase postgres is designed to expect a certain folder
> structure for it's data folder, and configuration files are
> considered part of it.
>
> As you may see on the documentation:
>
> https://www.postgresql.org/docs/9.6/static/app-postgres.html
>
> You can change the data folder (-D command line option), but, no
> matter what the data folder is, it MUST have a postgresql.conf, as
> well as pg_hba.conf
>
> However, some distros have made a similar appriach to what you may be
> looking to do. Don't remmeber which one, but there's a distro which
> it's stabdard postgresql server packages store configuration files
> at /etc/postgresql, while storing data at /var/lib/postgresql. This
> is done by simoly making a symlink, like "ln
> -s /mnt/shared/postgres/server1.conf /var/lib/postgres/data/postgresql.conf".
> Same applies to other conficuration files.

Normally the config files live on the server. If you want to
hack the basename I'd suggest using symlinks for each machine.
Set up a whatever.conf.<hostname> files you like, symlink them
into of /etc/posgresql (or whatever you use on Windows):

e.g.,

#!/usr/bin/env bash

[ -z "$HOST_CONF_DIR" ] || exit -1;
[ -d $HOST_CONF_DIR ] || exit -2;
[ -r $HOST_CONF_DIR ] || exit -3;

suffix=".$(hostname)";

cd /etc/postgresql;

for i in $HOST_CONF_DIR/*;
do
ln -fsv $i ./$(basename $i $suffix);
done

echo 'Config dir:';
ls -al $PWD;

exit 0;

Result: You have the standard paths where PG expexts them and
ls -al (or readlink) will tell you which host they were generated
for.

--
Steven Lembark 1505 National Ave
Workhorse Computing Rockford, IL 61103
lembark(at)wrkhors(dot)com +1 888 359 3508

In response to

Browse pgsql-general by date

  From Date Subject
Next Message ik 2018-08-01 08:52:14 Adding terminal title support for psqlrc
Previous Message Ron 2018-08-01 06:03:40 Settings for fast restores