Migrationer i Entity Framework Core
Yay! Migrationer låter oss uppdatera databasens struktur utan att manuellt skriva SQL-skript. Vi beskriver förändringen i kod och låter EF Core generera SQL åt oss – smidigt både lokalt och i produktion.
TL;DR
Använd dotnet ef migrations add <namn> för att skapa en migration och dotnet ef database update för att applicera den. Lägg migrationsfilerna i versionshantering så att teamet delar samma schema.
Komma igång
- Säkerställ att paketet
Microsoft.EntityFrameworkCore.Toolsfinns. - Kontrollera att
DbContextgår att instansiera (DI eller parameterlös konstruktor). - Kör
dotnet ef migrations add InitialCreatefrån projektets katalog.
dotnet ef migrations add InitialCreate
dotnet ef database update
Migrations/-mappen får två filer: själva migrationen och en snapshot.- Snapshot-filen beskriver nuläget och används när nästa migration genereras.
Namnge smart
- Beskriv förändringen:
AddEnrollment,RenameCourseTitle,SeedStatusValues. - Håll dig till PascalCase utan mellanslag.
- Har du ångrat dig? Kör
dotnet ef migrations removedirekt.
Uppdatera databasen
dotnet ef database update
- Uppdaterar standarddatabasen (definierad i konfigurationen).
- Specifika miljöer? Lägg till
--connectionmed en annan sträng.
Rulla tillbaka
dotnet ef database update PreviousMigrationName
- Perfekt om en migration beter sig konstigt i test.
- Sista utvägen:
dotnet ef database update 0skapar om databasen från scratch.
Migrations i team
- Checka in migrationsfilerna i Git.
- Kör
dotnet ef database updatedirekt efter pull så att databasen matchar koden. - Konflikt? Ta bort migrationerna lokalt, kör om genereringen, pusha igen.
Tips för produktion
- Kör
dotnet ef migrations bundleför att skapa ett fristående verktyg. - Alternativt generera SQL:
dotnet ef migrations script. - Kör alltid i staging före produktion.
Obligatorisk Dad-joke
Varför älskar databasen migrationer?
För att den gillar att “flytta” till bättre former!