Обсуждение: postgresql timezone and OS localtime correspondence

Поиск
Список
Период
Сортировка

postgresql timezone and OS localtime correspondence

От
Pavel Suderevsky
Дата:
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? 

Re: postgresql timezone and OS localtime correspondence

От
Tom Lane
Дата:
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