The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Отмена перехода на зимнее время в P..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Отмена перехода на зимнее время в P..."  +/
Сообщение от auto_tips (??) on 01-Ноя-11, 14:54 
В PostgreSQL используется своя внутренняя таблица временных зон (postgresql-x.x.x/src/timezone), поэтому обновление системной базы zoneinfo не повлияет на перевод часов в PostgreSQL.

Смотрим текущее состояние:

   SELECT * FROM pg_timezone_names;

   Europe/Moscow                    | MSK    | 03:00:00   | f

Как видим часы перевелись и используется смещение +3 вместо +4.

   SELECT now();
   2011-11-01 11:00:19.834213+03

   SELECT now()-'6 days'::interval;
   2011-10-26 11:00:52.155833+04

Копируем актуальные данные из обновлённой в системе базы часовых поясов. База часовых поясов в PostgreSQL может оказаться в /usr/local/share/pgsql/timezone, /usr/share/pgsql/timezone или /usr/local/pgsql/share/timezone/. Например:

   cp -f /usr/share/zoneinfo/Europe/Moscow /usr/share/pgsql/timezone/Europe/Moscow

После этого "SELECT * FROM pg_timezone_names" отобразит изменения, но чтобы они подействовали обязательно требуется перезапустить PostgreSQL.

Для изменения часового пояса для конкретной БД можно использовать конструкцию:

   ALTER DATABASE mydb SET timezone TO 'Asia/Yekaterinburg';

Из других подводных камней, которые обнаружились при отмене перехода на зимнее время можно упомянуть забытое обновление /etc/localtime в chroot-окружениях.


URL:
Обсуждается: http://www.opennet.me/tips/info/2639.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от Vadim email(??) on 01-Ноя-11, 14:54 
>ALTER DATABASE mydb SET timezone TO >'Asia/Yekaterinburg';

Это несколько хард коддинг.

psql можно указать смещение временной зоны относителельно UTC:

SET TIMEZONE TO "+4";

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от qwerty (??) on 01-Ноя-11, 15:07 
По-моему, это у тебя хардкодинг. :)
А в статье нормальное решение.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от anonymous (??) on 01-Ноя-11, 17:03 
а через полгода опять назад?
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от qwerty (??) on 01-Ноя-11, 17:20 
Почему? Через полгода в Екатеринбурге что-то опять изменится?
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от anonymous email(??) on 01-Ноя-11, 20:22 
Странно,
SELECT * FROM pg_timezone_names;
Europe/Moscow             | MSK    | 04:00:00   | f
Это значит час. пояс правильный стоит?
# uname -a
Linux postgres 2.6.38-gentoo-r6 #3 SMP Tue Jun 7 22:35:12 YEKST 2011 x86_64 Intel(R) Xeon(R) CPU E5620 @ 2.40GHz GenuineIntel GNU/Linux
# postgres=# select version();
PostgreSQL 8.4.7 on x86_64-pc-linux-gnu, compiled by GCC x86_64-pc-linux-gnu-gcc (Gentoo 4.4.5 p1.2, pie-0.4.5) 4.4.5, 64-bit
(сие под 1с-ку заточено)
Хотя кажется, что правильность часового пояса на данные не влияет
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от Аноним (??) on 01-Ноя-11, 21:42 
> psql можно указать смещение временной зоны относителельно UTC:
> SET TIMEZONE TO "+4";

Ага и потерять все переключения часовых поясов в прошлом.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

10. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от anonymous (??) on 02-Ноя-11, 10:25 
неделю назад по Asia/Yekaterinburg было летнее время, а через полгода не будет?
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

11. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от Turbid (??) on 02-Ноя-11, 12:06 
Europe/Moscow                          | MSK    | 04:00:00   | f

Debian testing

ЧЯДНТ?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от funny_falcon on 04-Ноя-11, 21:52 
Сидишь на testing.
В stable всё намного хуже
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от funny_falcon on 04-Ноя-11, 21:56 
> Сидишь на testing.
> В stable всё намного хуже

Поправка: чтобы понять всю досадную не справедливость жизни, выполни:

    select '2011-11-04 00:00:00 MSK'::timestamptz

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от Andrej email(??) on 07-Ноя-11, 00:39 
так что не так в статье?
или в у меня в postgresql?
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от BbIPb email on 08-Ноя-11, 11:31 
у меня тоже чтото в postgresql не так ?
смена ТЗ в системе, вызвала смену в PG

postgres=# SELECT * FROM pg_timezone_names where name like '%Moscow%';
     name      | abbrev | utc_offset | is_dst
---------------+--------+------------+--------
Europe/Moscow | MSK    | 04:00:00   | f
(1 row)

postgres=# select version();
                                                    version                                                    
---------------------------------------------------------------------------------------------------------------
PostgreSQL 9.1.0 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
(1 row)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от qwerty (??) on 08-Ноя-11, 11:41 
2011-11-04 01:00:00+04

Сколько должно быть ?

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

17. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от mike_t on 08-Ноя-11, 13:56 
небольшое уточнение, этот совет полезен только тем у кого собран pgsql без опции --with-system-tzdata=DIR
если опция присутствует, то и так всё поправится
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от funny_falcon on 24-Ноя-11, 19:53 
2011-11-04 00:00:00+04
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

19. "Отмена перехода на зимнее время в PostgreSQL"  +/
Сообщение от Stas Todorov email on 25-Ноя-11, 22:05 
Автору огромное спасибо!
Хотелось бы только отметить, что копировать файлы зон приходится от рута, и (в случае с сервером 1С) лучше для большей безопасности сначала остановить сервис 1С, потом postgresql, и потом уже скопировать правильный файл и запустить сервисы в обратной последовательности.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру