我导入了一个使用psql(PostgreSQL)9.5.10的数据库。对于我的本地数据库v.9.6.5。
这是有问题的部分:
COPY timezone (id, name, windowsname, tzindex) FROM stdin;
...
315 Canada/East-Saskatchewan \N \N
...
这是我得到的错误:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 9024; 0 48454 TABLE DATA timezone skysms
pg_restore: [archiver (db)] COPY failed for table "timezone": ERROR: invalid value for parameter "TimeZone": "Canada/East-Saskatchewan"
CONTEXT: SQL statement "SET local timezone to 'Canada/East-Saskatchewan'"
PL/pgSQL function display_in_other_tz(timestamp with time zone,text,text) line 7 at EXECUTE statement
COPY timezone, line 315: "315 Canada/East-Saskatchewan \N \N"
答案 0 :(得分:7)
区域year
曾经是有效的时区标识符。它是[[
时区的链接/别名。但是,它在上一个版本(2017c)中从tz数据库删除。您可以看到提交here。
The 2017c release announcement州:
从后退'移除加拿大/东萨斯喀彻温省。文件,因为它超过了14个字符的限制,无论如何都是一个未使用的用词。
因此,虽然通常时区标识符没有以这种方式删除,但对于这个特定的时区,由于其长度,它被认为是必要的。
您可以安全地将Canada/East-Saskatchewan
的任何条目更新为区域的首选基于地点的形式:America/Regina
。