-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sett tidssone på godkjent_av_arbeidsgiver #128
Conversation
src/main/resources/db/migration/V58__tidssone_for_godkjent_av_arbeidsgiver.sql
Show resolved
Hide resolved
d5b669b
to
a9ec751
Compare
@@ -18,7 +19,7 @@ data class HendelsesloggDTO( | |||
utførtAv = utførtAv(hendelseslogg), | |||
event = hendelseslogg.event, | |||
metadata = hendelseslogg.metadata, | |||
tidspunkt = hendelseslogg.tidspunkt, | |||
tidspunkt = LocalDateTime.ofInstant(hendelseslogg.tidspunkt, ZoneId.of("Europe/Oslo")), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO: levere instant til frontend, og frontend tar ansvar for konvertering?
Tok også et uttrekk av alle tidspunktene i databasen i tilfelle noe faktisk skjærer seg i migreringen, men det ser ut til å ha gått greit for seg i testmiljø 🙏 |
-- For å få tidspunktene til å bli riktige MED tidssone må vi derfor bruke "at time zone" med | ||
-- europe/oslo i stedet for utc, slik vi gjorde med feltene hvor jpa-entiteten bruker instant. | ||
alter table hendelseslogg alter column tidspunkt type timestamp with time zone | ||
using tidspunkt at time zone 'Europe/Oslo'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
obs obs, merk forskjellen her!
PR review-oppgaver og resultater: Hva som skjer når man lagrer en "localdatetime" i en "with timezone"-timestamp?Dette ser ut til å fungere helt fint. Litt usikker på hvorfor, det må jo bety at databaseforbindelsen til java-appen har norsk tidssone Hva skjer hvis vi sender en UTC-timestamp i hendelsesloggen?Ser ut til å fungere helt fint, datoen blir formatert i moment til norsk tid, og ved å legge på en timezone vil moment dreie klokkeslettet til å matche norsk tid (før når vi sendte en localtime gjorde moment bare ingenting) |
For å redusere forvirring med tidspunkter når vi gjør databaseuttrekk så ønsker vi å konvertere en del "timestamp without time zone" til timestamps med tidssone. Dette gjøres på litt forskjellige måter avhengig av hvordan jpa-entitene behandler feltene. * for instants: bruk "at time zone 'UTC'" * for localdatetime: bruk "at time zone 'Europe/Oslo'" Instants som lagres i en timestamp er lagret i UTC, men ser ut som en "localdatetime" når man gjør uttrekk. LocalDateTimes som lagres i en timestamp ser riktige ut, og det er strengt tatt ikke nødvendig å migrere disse bortsett fra at tidspunktet blir mer nøyaktig og at vi fjerner all tvil om når tidspunktet gjelder for.
fakelogin-appen leverer en fake token som inneholder en ad-gruppe, og vi kan like gjerne gjenbruke id'en.
46802a3
to
1e7dde9
Compare
Databasekolonnen har ikke tidssone, men er mappet
til en instant i kodebasen (som har tidssone).
Denne migreringen setter tidssone på kolonnen slik at det ikke vil være forvirring (det er lett å tro at man ser på "norsk tid" i en spørring, når man
egentlig må legge på 2 timer for å se riktig tidspunkt)