谁负责保持pg_timezone_names视图更新?

时间:2016-06-01 15:18:41

标签: postgresql timezone windows-server-2008 postgresql-9.3

2007年,我们的总统将其从UTC−04:00更改为UTC−04:30,因为孩子们很早就上学了。现在在2016年决定很晚到达,并恢复到UTC−04:00以节省电力。

那么如何保持表格pg_timezone_names更新?是否有我可以使用的脚本,我可以链接到我的服务器的服务?

或者每当我听到有什么变化时,我必须自己更新表格?

enter image description here

编辑:我只是意识到pg_timezone_names是一个视图,而不是一个表。那么现在的另一个问题是我如何更新视图?

第二次修改:我正在使用Windows Server 2008和postgres 9.3

1 个答案:

答案 0 :(得分:3)

您在委内瑞拉提到的更改是在tz database的2016d版本中处理的。您可以阅读2016d发行说明here

Postgres将这些更新编译到postgres的每个发行版本中。您可以查看Postgres时区版本历史记录here。从这些信息中,您可以看到2016-05-06,2016d数据已添加到Postgres源代码中。这意味着在此之后发布的任何Postgres版本都应该有相关的时区变化。

the Postgres home page上,在右上角,您可以看到最新版本。如果您希望继续使用9.3,请更新到最新版本9.3.13,2016-05-12发布。实际上,在the release notes for 9.3.13中,它提到了这一点:

  
      
  • 将时区数据文件更新为tddata 2016d版,用于俄罗斯和委内瑞拉的夏令时法律变更。 ...
  •   

请注意,Postgres提供了一个选项--with-system-tzdata=DIRECTORY,您可以使用它来保持当前使用OS tzdata更新,但是它期望找到zic编译的tzdata,例如随Linux,OSX等分发的。这个数据不是在Windows上以此格式提供。因此,您必须使用Postgres附带的tzdata。

  

那你如何保持表pg_timezone_names更新?是否有我可以使用的脚本,我可以链接到我的服务器的服务?

不,在Windows上没有自动执行此操作的方法(我知道)。您必须及时了解Postgres的当前版本。在Linux上,您可以自动执行tzdata更新并使用我之前提到的选项标志。

  

或者只需要自己更新表格......

请勿尝试手动操作时区数据。它比你想象的要复杂得多。

  

......每当我听到一些变化?

如果您想了解时区数据更新,请订阅tz公告邮件列表at IANA

您也可以考虑订阅Postgres's RSS feed。还要记住Postgres's support lifecycle,因为最终小的更新将达到使用寿命,您将不得不进行更大幅度的升级以保持最新状态。