75 lines
3.6 KiB
SQL
75 lines
3.6 KiB
SQL
-- Normalize legacy IANA timezone aliases stored in users.timezone.
|
|
--
|
|
-- Browsers (ICU/CLDR) report legacy ids — Safari sends "Asia/Calcutta", not
|
|
-- "Asia/Kolkata" — and Go's validation accepts them, so they were stored
|
|
-- verbatim. A Postgres built against tzdata without the "backward" links
|
|
-- rejects those names in AT TIME ZONE (SQLSTATE 22023), 500-ing the sādhana
|
|
-- dashboard. The Go side now canonicalizes on read and write (see
|
|
-- internal/service/timezone.go); this backfills the rows written before.
|
|
UPDATE users SET timezone = m.canonical
|
|
FROM (VALUES
|
|
('Asia/Calcutta', 'Asia/Kolkata'),
|
|
('Asia/Katmandu', 'Asia/Kathmandu'),
|
|
('Asia/Rangoon', 'Asia/Yangon'),
|
|
('Asia/Saigon', 'Asia/Ho_Chi_Minh'),
|
|
('America/Buenos_Aires', 'America/Argentina/Buenos_Aires'),
|
|
('America/Catamarca', 'America/Argentina/Catamarca'),
|
|
('America/Cordoba', 'America/Argentina/Cordoba'),
|
|
('America/Jujuy', 'America/Argentina/Jujuy'),
|
|
('America/Mendoza', 'America/Argentina/Mendoza'),
|
|
('America/Indianapolis', 'America/Indiana/Indianapolis'),
|
|
('America/Louisville', 'America/Kentucky/Louisville'),
|
|
('America/Godthab', 'America/Nuuk'),
|
|
('Atlantic/Faeroe', 'Atlantic/Faroe'),
|
|
('Pacific/Ponape', 'Pacific/Pohnpei'),
|
|
('Pacific/Truk', 'Pacific/Chuuk'),
|
|
('Europe/Kiev', 'Europe/Kyiv'),
|
|
('Asia/Ashkhabad', 'Asia/Ashgabat'),
|
|
('Asia/Chongqing', 'Asia/Shanghai'),
|
|
('Asia/Chungking', 'Asia/Shanghai'),
|
|
('Asia/Dacca', 'Asia/Dhaka'),
|
|
('Asia/Harbin', 'Asia/Shanghai'),
|
|
('Asia/Istanbul', 'Europe/Istanbul'),
|
|
('Asia/Kashgar', 'Asia/Urumqi'),
|
|
('Asia/Macao', 'Asia/Macau'),
|
|
('Asia/Tel_Aviv', 'Asia/Jerusalem'),
|
|
('Asia/Thimbu', 'Asia/Thimphu'),
|
|
('Asia/Ujung_Pandang', 'Asia/Makassar'),
|
|
('Asia/Ulan_Bator', 'Asia/Ulaanbaatar'),
|
|
('Africa/Asmera', 'Africa/Asmara'),
|
|
('America/Coral_Harbour','America/Atikokan'),
|
|
('Australia/ACT', 'Australia/Sydney'),
|
|
('Australia/Canberra', 'Australia/Sydney'),
|
|
('Australia/NSW', 'Australia/Sydney'),
|
|
('Australia/North', 'Australia/Darwin'),
|
|
('Australia/Queensland', 'Australia/Brisbane'),
|
|
('Australia/South', 'Australia/Adelaide'),
|
|
('Australia/Tasmania', 'Australia/Hobart'),
|
|
('Australia/Victoria', 'Australia/Melbourne'),
|
|
('Australia/West', 'Australia/Perth'),
|
|
('US/Alaska', 'America/Anchorage'),
|
|
('US/Arizona', 'America/Phoenix'),
|
|
('US/Central', 'America/Chicago'),
|
|
('US/Eastern', 'America/New_York'),
|
|
('US/Hawaii', 'Pacific/Honolulu'),
|
|
('US/Mountain', 'America/Denver'),
|
|
('US/Pacific', 'America/Los_Angeles'),
|
|
('GB', 'Europe/London'),
|
|
('GB-Eire', 'Europe/London'),
|
|
('Eire', 'Europe/Dublin'),
|
|
('Egypt', 'Africa/Cairo'),
|
|
('Hongkong', 'Asia/Hong_Kong'),
|
|
('Iceland', 'Atlantic/Reykjavik'),
|
|
('Israel', 'Asia/Jerusalem'),
|
|
('Japan', 'Asia/Tokyo'),
|
|
('NZ', 'Pacific/Auckland'),
|
|
('Poland', 'Europe/Warsaw'),
|
|
('Portugal', 'Europe/Lisbon'),
|
|
('PRC', 'Asia/Shanghai'),
|
|
('ROC', 'Asia/Taipei'),
|
|
('ROK', 'Asia/Seoul'),
|
|
('Singapore', 'Asia/Singapore'),
|
|
('Turkey', 'Europe/Istanbul')
|
|
) AS m(alias, canonical)
|
|
WHERE users.timezone = m.alias;
|