Skip to content

Conversation

Joosakur
Copy link
Contributor

@Joosakur Joosakur commented Jul 7, 2025

Tuen päätökset tehdään syksystä 2025 alkaen käyttäen muu päätös tyyppisiä asiakirjapohjia.

Vanhan malliset tuen päätökset (vaka ja esiopetus) tullaan migratoimaan uuteen malliin, jossa ne jäävät säilöön read-only tilassa. Migraatio tulee vaatimaan jonkin verran kuntakohtaista manuaalista työtä (oikaisuvaatimustekstit ym). Tämän jälkeen vanhan mallin koodi ja tietorakenteet poistetaan.

Tämä PR toteuttaa migraation teknisen kyvykkyyden jotta sitä voidaan alkaa testata staging ympäristöissä.


Alustava suunnitelma migraatiolle ja yliheitolle:

Vaihe 1
Estetään vanhan mallisten tuen päätösten luominen: #7584

Vaihe 2
Vanhan malliset luonnokset täytyy olla käsitelty loppuun, jotta ne voidaan migratoida. Luonnostiloihin jääneet eivät migratoidu.

Vaihe 3
Kantaan lisätään asiakirjapohjat migratoitaville tuen päätöksille. Vakalle ja esiopetukselle tulee molemmille omat ja tarvittaessa erikseen suomen ja ruotsin kielisinä eli yhteensä 4 kpl. Migraatio olettaa, että templaatista löytyy tietyt kysymykset tietyillä tunnisteilla. Toisaalta kuitenkin osa templaatin tiedoista kuten asianhallinnan tehtäväluokka sekä osa sisällöstä kuten oikaisuvaatimusohjeet ovat kuntakohtaisia. Tätä helpottamaan tuomme tarjolle .template.json muotoiset tiedostot, jotka pääkäyttäjäoikeudet omaava henkilö voi importtaa asiakirjapohjiin käyttöliittymän kautta. Pääkäyttäjä tekee näihin tarvittavat tekstimuutokset käyttöliittymässä ja julkaisee lomakepohjat.

Vaihe 4
Lisätään kantaan async job jokaiselle migratoitavalle päätökselle:

INSERT INTO async_job(type, payload, retry_count, retry_interval)
SELECT 'MigrateDaycareAssistanceDecision', jsonb_build_object('user', NULL, 'decisionId', id), 1, interval '5 seconds'
FROM (SELECT id FROM assistance_need_decision) decisions_to_migrate;

INSERT INTO async_job(type, payload, retry_count, retry_interval)
SELECT 'MigratePreschoolAssistanceDecision', jsonb_build_object('user', NULL, 'decisionId', id), 1, interval '5 seconds'
FROM (SELECT id FROM assistance_need_preschool_decision) decisions_to_migrate;

Monitoroidaan, että kaikki jobit menevät läpi. Tässä vaiheessa migratoidut päätökset näkyvät vain pääkäyttäjälle, joka voi satunnaisotannalla tarkistaa niiden oikeellisuuden. Jos päätöspohjaan tarvitsee tehdä muutoksia, voi sen joko tehdä suoraan kantaan tai poistaa migratoidut dokumentit, peruuttaa päätöspohjan julkaisun, muokata käyttöliittymässä ja julkaista uudelleen. Tämän jälkeen migraatio-jobit voi insertoida uudelleen.

Vaihe 5
Muutetaan konfiguraatiota (feature flag?) niin, että migratoidut päätökset alkavat näkyä kaikille käyttäjille, kun taas vanhan malliset piilotetaan. Samalla aletaan käyttää uuden mallisten päätösten katkaisulogiikkaa myös migratoituihin päätöksiin ja disabloidaan vanhan mallisten päätösten automaattikatkaisija.

Vaihe 6
Poistetaan vanhaan toiminnallisuuteen ja migraation ajamiseen liittyvä koodi

Vaihe 7
Poistetaan vanhaan toiminnallisuuteen liittyvät tietokantarakenteet ja data

Mietittävät asiat

  • Päätösten automaattikatkaisuihin liittyen voi syntyä ongelmia jos on yhtä aikaa monenlaisia päätöksiä (vanhan mallisia, migratoituja ja uuden mallisia). MIgraation aikaikkuna olisi tästäkin syystä hyvä pitää melko lyhyenä.

@Joosakur Joosakur added the breaking Vaatii toimia päivityksen yhteydessä label Jul 7, 2025
@Joosakur Joosakur changed the base branch from master to end-decision-when-unit-changes-config July 8, 2025 08:05
@Joosakur Joosakur force-pushed the assistance-need-decision-migration branch from d9dd120 to 028f6e5 Compare July 8, 2025 11:54
Base automatically changed from end-decision-when-unit-changes-config to master July 8, 2025 13:18
@Joosakur Joosakur force-pushed the assistance-need-decision-migration branch from 028f6e5 to a6a0ade Compare July 9, 2025 09:13
@Joosakur Joosakur force-pushed the assistance-need-decision-migration branch 6 times, most recently from c0db8a3 to b5ee87c Compare August 19, 2025 07:00
@Joosakur Joosakur changed the title WIP: tuen päätösten migraatio Tuen päätösten migraatio - part 1 Aug 19, 2025
@Joosakur Joosakur added enhancement Uusi toiminnallisuus tai parannus tech Tekninen muutos, esim. refaktorointi and removed breaking Vaatii toimia päivityksen yhteydessä enhancement Uusi toiminnallisuus tai parannus labels Aug 19, 2025
@Joosakur Joosakur marked this pull request as ready for review August 19, 2025 07:52
@tomuli tomuli force-pushed the assistance-need-decision-migration branch from b5ee87c to 53b8f4c Compare September 3, 2025 09:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tech Tekninen muutos, esim. refaktorointi
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant