Altinn / Altinn/info.altinn.no
Kopiere PROD til andre miljøer
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 2
- Avg merge
- 20h 21m
- Merged PRs (30d)
- 32
Description
Nå kommer det en del feilmeldinger i logger for at23 og tt02 fordi feil knyttet til data er rettet i prod og at22, men ikke i at23 og tt02.
Det er også hensiktsmessig for testing og bruk ellers at mlijøene at22, at23 og tt02 i stor grad gjenspeiler innhold i produksjon.
Kopiering av data fra prod kan ikke gjøres automatisk fortløpende uten å forstyrre brukere av de andre miljøene, men kan løses ved å kjøre en jobb en gang i blant. En slik jobb må utvikles.
Rent teknisk betyr dette at en kopi av database og media-filer fra prod må erstatte database og media-filer i det miljøet som skal oppdateres.
Lenker til innboks, tilgangsstyring og e-post-adresse for kontaktskjema må beholdes miljøspesifikke. Dette innebærer noen få database-endringer som en del av jobben.
Hvordan kjøre jobben bør dokumenteres på Confluence.
### Forslag til teknisk løsning
Forslaget går ut på å lage et shell-script eller program (C# eller TypeScript) som kjører på utviklers PC etter at utvikler har etablert VPN-tilkobling mot plattformen.
Stegene i scriptet / programmet kan være:
1. Eksporter database fra prod (gjenbruk deler av https://github.com/Altinn/info.altinn.no/issues/643)
2. Ta ned Umbraco i målmiljøet (evt. deploy med SQLite i stedet for AzureSQL)
3. Gi et nytt navn til databasen "umbraco" i målmiljøet, f.eks. "umbraco-kopi-"
4. Importer prod-databasen i det nye miljøet. Hvis dette feiler, start om igjen fra steg 1.
5. Kjør SQL-kommandoer for å oppdatere lenker til innboks, tilgangsstyring og e-post for kontaktskjema
6. Lag en sikkerhetskopi av mediafiler for målmiljøet
7. Kopier mediafiler fra prod til målmiljøet (full overskriving)
8. Start opp Umbraco i målmiljøet (evt. deploy med AzureSQL i stedet for` SQLite)
Manuelle steg i etterkant:
1. Teste at innhold i portalen og media-arkivet i Umbraco fra prod er gjenspeilt i målmiljøet
2. Teste at lenker til innboks og tilgangstyring går til samme sted som før oppdateringen
3. Hvis alt ser ok ut, slett kopiene av gammel database og gamle mediafiler manuelt
Kommandoen "sqlcmd" kan brukes for steg 3 og 5. Eksempel:
```
sqlcmd -S infop-at22-vllfov-server.privatelink.database.windows.net -d master -G -C -U -Q "alter database umbraco modify name = 'umbraco-kopi-260806';"
sqlcmd -S infop-at22-vllfov-server.privatelink.database.windows.net -d umbraco -G -C -U -Q "update umbracoPropertyData set varcharValue = 'https://af.at23.altinn.cloud/' where id in (213247, 213248, 213249); update umbracoPropertyData set varcharValue = 'https://am.ui.at23.altinn.cloud/' where id in (213251, 213252, 213253); update umbracoPropertyData set varcharValue = 'test.support@altinn.no' where id = 37881; update umbracoPropertyData set varcharValue = 'altinn.starteogdrive@brreg.no' where id = 37861;"
```
Kommandoen "azcopy sync" kan brukes for steg 6 og 7 (etter tips fra plattform-teamet). Eksempel:
```
az storage container generate-sas --account-name infoportalmediaat23n73s --name umbraco --permissions racwdl --expiry 2026-08-05T23:59:59Z --https-only --auth-mode login --as-user -o tsv
azcopy sync \
'https://infoportalmediaat23n73s.blob.core.windows.net/umbraco/media?' \
'https://infoportalmediaat23n73s.blob.core.windows.net/umbraco/media-backup-260806?' \
--recursive
azcopy sync \
'https://infoportalmediaprodl08r.blob.core.windows.net/umbraco/media?' \
'https://infoportalmediaat23n73s.blob.core.windows.net/umbraco/media?' \
--recursive \
--delete-destination=true
```
Contributor guide
No contributing guide indexed for this repository
Research direction
No repository files or tests are named. Start by reviewing issue #643 and validating the proposed database and media-copy workflow with the platform team, including rollback and environment-specific values. Done means a repeatable job can update at22, at23, or tt02 safely, with backups and Confluence instructions for verification and cleanup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, csharp, shell, sql, typescript
- Domain
- cloud, databases, devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100