У меня есть база данных postgresql, в которой я использую сценарии, используя flyway. Я использую плагин maven flyway для запуска сборки базы данных по целевой базе данных. В этой сборке у меня есть сценарии, которые делают что-то вроде:
create table my_table(
my_date_time timestamp with time zone not null
);
insert into my_table(my_date_time)
select '2000-01-01';
Часовой пояс базы данных postgresql установлен на UTC. На моем клиентском компьютере (который выполняет сборку maven / flyway) выполняется CEST (UTC + 2: 00).
Когда сценарии выполняются, база данных интерпретирует строковый литерал выше как '1999-12-31 22:00: 00 + 00: 00 'и записывает это в хранилище.
Похоже, что клиентское соединение jdbc, созданное flyway, не устанавливает часовой пояс клиента в UTC, но принимает строку timstamp и интерпретирует ее как'2000-01-01 00: 00: 00 + 02: 00 '.
Как я могу установить часовой пояс клиента на соединении jdbc, созданном flyway для UTC? Есть ли параметр, который можно поместить в мой файл flyway.conf?
Если я изменю часовой пояс локального компьютера на UTC, проблема исчезнет, но я бы не стал этого делать на моей рабочей станции разработки.