Page History
| Navitabs | ||
|---|---|---|
| ||
...
- Database script til at indsætte ny række/felt migrering i fieldmigrationstatus. Dette findes som liquidbase script for NXRG servicen.
- Database script der tilføjer det søgbare felt til f.eks. documententries eller anden relevant tabel. Dette findes som liquidbase script for NXRG servicen. Det er her NXRG og felt migreringen gemmer den søgbare værdi.
- En kørende version af NXRG, der sørger for at nye dokumentregistreringer gemmer data i det (nye) søgbare felt (migreringen håndterer kun registreringer eksisterende på det tidspunk ny version af NXRG installeres)
Ovenstående 3 punkter skal være inkluderet i samme NXRG release, og når den er installeret, er migreringen klar til at blive kørt (se afsnit nedenfor) på samme version.
Konfiguration
Servicekonfiguration
...
Felt | Beskrivelse |
|---|---|
id | En intern nøgle |
| migrationid | Navnet på migrering af feltet. Siger noget om, hvad der migreres |
| progressid | peger på en dokument registrering (id i documentEntries tabellen). Er 0 sålænge migreringen ikke er startet. Når en migrering er kørt, vil progressid pege på den sidste documentEntries, der er migreret i kørslen. Man kan ikke forvente at progressid bliver større ved hver migrering. Rækkefølge afhænger af creation_time på documentEntries. Fejler valideringen af kørslen (batch) vil progressId ikke blive justeret op. Når migrationid rammer targetid, er der ikke mere at migrere. |
| targetid | peger på den sidste dokument registrering (id i documentEntries tabellen), der skal migreres. Når migrationid rammer denne værdi, er der ikke mere at migrere. Targetid er ikke nødvendigvis det største id på tidspunktet for indsættelse. Det afhænger af creation_time på documentEntries. |
| migrationStartTime | tidspunkt for, hvornår den første kørsel af migreringen er startet. Er værdien null har migrering af feltet aldrig været startet |
| migrationEndTime | tidspunkt for, hvornår migreringen er afsluttet (da progressid ramte targetid og den afsluttende validering gik godt) |
| lastUpdagtedTime | tidspunkt for, hvornår data for feltmigreringen senest er opdateret |
...
Nu startes der en migrering for de "migrationid'er" som findes i listen man ser, når man tjekker migrerings status (se ovenfor). Er migrationEndTime udfyldt er der ikke noget at migrere. Men ellers køres der migering på det antal registreringer, der er angivet i property nxrg.data.max.no.of.documents.
Rækkefølgende migreringen tager fra i records på, er bestemt at documentEntries felterne creation_time og id. Sådan at ældste records migreres først og yngest sidst. Falder flere records på samme tidspunkt, tages det mindste id først.
For den enkelte migrering kan der være validering implementeret. Er der fejl i denne migrering skal fejl skrives til applikationsloggen. Fejler validering på batch niveau, justeres progressId ikke op. Er der fejl på slut validering, sættes migrationEndTime ikke.
Når migeringen afslutter får man følgende besked
...
| Code Block | ||
|---|---|---|
| ||
2022-05-1923 1015:4736:3238,624293 [INFO] dk.nsp.nxrg.field.migration.service.impl.FieldMigrationServiceImpl - MigratingMigrerer fieldfelt data tofor NXRG ... 2022-05-1923 1015:4736:3238,642294 [INFO] dk.nsp.nxrg.field.migration.service.model.ComplexDocumentEntryFieldMigrationComplexFieldMigration - HenterTjekker et batch dokumententries. Batch størrelse er: 20, progressId er 40 og targetid er: 156migrering for: documententry-repositoryid-add 2022-05-1923 1015:4736:3238,700322 [DEBUGINFO] dk.nsp.nxrg.field.migration.service.model.AddRepositoryUniqueIdComplexDocumentEntryFieldMigration - migrering af: urn:uuid:a52c33e9-2736-48f3-a811-9ef7ed6903ee med repositoryUniqueId: 1.1.111.111.1.1 Henter et batch dokumententries. Batch størrelse er: 20, progressId er 180 og targetid er: 186 2022-05-1923 1015:4736:3238,707432 [DEBUGINFO] dk.nsp.nxrg.field.migration.service.model.AddRepositoryUniqueId - migreringAlle af: urn:uuid:0aa46b22-02c5-4092-897c-bbc76ee1b8d5 med repositoryUniqueId: 1.1.111.111.1.1 ...RepositoryUniqueIds i batch er migreret 2022-05-1923 1015:4736:3238,845432 [DEBUGINFO] dk.nsp.nxrg.field.migration.service.model.AddRepositoryUniqueIdComplexDocumentEntryFieldMigration - migrering af: urn:uuid:9ad8bca5-b28e-4f8e-a5c0-bb7f29578602 med repositoryUniqueId: 1.1.111.111.1.1 Batch validering gik godt. Opdaterer progressId med: 186 2022-05-1923 1015:4736:3238,854447 [DEBUGINFO] dk.nsp.nxrg.field.migration.service.model.AddRepositoryUniqueIdComplexDocumentEntryFieldMigration - migreringTargetId af: urn:uuid:fb1e89de-ebe5-4cf8-a03d-e67f98b57c4d med repositoryUniqueId: 1.1.111.111.1.1er lig med progressId. Slut validering kan udføres 2022-05-1923 1015:4736:3238,866447 [INFO] dk.nsp.nxrg.field.migration.service.model.AddRepositoryUniqueIdComplexDocumentEntryFieldMigration - All RepositoryUniqueIds are migratedSlut validering gik godt. Migreringen afsluttes 2022-05-1923 1015:4736:3238,870459 [INFO] dk.nsp.nxrg.field.migration.service.impl.FieldMigrationServiceImpl - CompletedMigrering migratingaf fieldfelt data tofor NXRG! Time spent er færdig. Anvendt tid er: 0 secondssekunder |
Linie 2 fortæller, hvilken migrering, der starter op.
Linie 2 3 siger noget om batch størrelse, progressId og targitId på start tidspunktetDe næste linier logger migreringen.
Eksemplets specfikke migrering logger her i linie 4, at valideringen (RepositoryUniqueId er udfyldt) gik godt. Var det en registring, hvor feltet ikke kunne udfyldes, ville man se en linie med: "RepositoryUniqueId er blank for entryuuid: 123"
Linie 5 fortæller, hvilet progresId der nu er migreret.
Linie 6 at man er nået til enden på migreringen og slut validering udføres. Herefter linie 7 med resultat af slut validering.
Til sidst kan man se, hvor længe kørslen tog.
Faktiske migreringer implementeret
Migrering af repositoryUniqueId
| Migrationid | Database felt | Beskrivelse |
|---|---|---|
| documententry-repositoryid-add | documententries.repository_uniqueid | RIM format for eksisterende documententries migreres til det nye database felt. Efter et batch er migreret valideres at feltet er udfyldt for alle documententries. Er det ikke det, afsluttet batches ikke (processid justeres ikke op) |