Generelt
Både backend og Api understøttes af MySql databaser, som genereres ved hjælp af Entitiy Frameworket. Databasen skal afspejle den tilstand modelklasserne i Core.DomainModel er i. Laves der ændringer i en model-klasse, skal man gennem package-manageren i Visual Studio køre kommandoen add-migration
(Husk at vælge Infrastructure.DataAccess som default project i package manageren). Dette vil danne en ny migration fil i Infrastructure.DataAccess.Migrations, som indeholder ændringerne. For så at tilføje ændringerne til selve databasen, skal kommandoen update-database
køres, også fra package-manageren. I backenden vil det være den database der står i DefaultConnection i connections.config der bliver arbejdet på, og i API'et vil det være den der står i connectionstringen i web.config. Når en migration køres på databasen, vil det ikke påvirke eksisterende data, selvfølgelig med mindre migrationen f.eks. sletter en kolonne eller lignende.
Sådan køres update-database fra en kommando promt direkte på serveren
Dette kan være nyttigt, hvis man ikke har direkte adgang fra sin lokale maskine til den server databasen ligger på, fx hvis kommunen bruger Citrix i stedet for VPN.
- Kopier migrate.exe fra stien \os2indberetning\packages\EntityFramework.6.0.2\tools og læg den op på serveren i projektets bin mappe (sammen med alle .dll'er osv).
- Lav en .cmd fil med indholdet: \[sti til migrate.exe filen] \[navnet på den assembly hvor migration filerne ligger] /startUpConfigurationFile="\[fuld sti til web.config filen i projektet]" /startupDirectory="\[fuld sti til bin folderen med migration assembly'en]" Se eksempel på .cmd fil nedenfor.
- Eksempel:
- Kør .cmd filen.
- ??
- profit