postgresql timezone and OS localtime correspondence

Started by Pavel Suderevskyabout 10 years ago2 messagesgeneral
Jump to latest
#1Pavel Suderevsky
psuderevsky@gmail.com

Hi,

My question is related to correspondence of postgresql "timezone" parameter
with OS timezone settings in debian and red hat family systems.

In debian by default postgresql "timezone" parameter value is "localtime"
and it succesfully gets current OS timezone. (most probably it is not
dynamically updated and with changing OS timezone postgresql to be
restarted likewise, but still)

In centos 7.2 postgresql doesn't accept "localtime" value and timezone must
be specified directly.

Mar 21 10:55:50 dbtest3.local pg_ctl[11242]: 2016-03-21 05:55:50 EST LOG:

invalid value for parameter "TimeZone": "localtime"
[root@dbtest3 ~]# ls -la /etc/localtime

lrwxrwxrwx. 1 root root 23 Mar 21 12:10 /etc/localtime ->
/usr/share/zoneinfo/GMT

I couldn't find information related to difference between debian and red
hat family systems for timezone parameter in docs.

So the common question is: is there a way to configure postgresql server to
get OS localtime value rather than setting it manually in red hat family
systems?

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Pavel Suderevsky (#1)
Re: postgresql timezone and OS localtime correspondence

Pavel Suderevsky <psuderevsky@gmail.com> writes:

My question is related to correspondence of postgresql "timezone" parameter
with OS timezone settings in debian and red hat family systems.

In debian by default postgresql "timezone" parameter value is "localtime"
and it succesfully gets current OS timezone. (most probably it is not
dynamically updated and with changing OS timezone postgresql to be
restarted likewise, but still)

In centos 7.2 postgresql doesn't accept "localtime" value and timezone must
be specified directly.

The reason that happens is that Debian creates a symlink named "localtime"
within the timezone data file tree (probably via zic's -l option, though
maybe they do it by hand). Red Hat doesn't do that; they follow a
different historical convention in which /etc/localtime defines the system
default zone. Arguably, "zic -l" is a violation of filesystem layout
conventions, since it puts what ought to be system-specific configuration
data into /usr/share.

So the common question is: is there a way to configure postgresql server to
get OS localtime value rather than setting it manually in red hat family
systems?

You could make your own symlink, though I'm unsure whether it'd survive
tzdata package updates.

regards, tom lane

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general