Migrationer
Migrationer låter dig uppdatera databasens struktur utan att skriva SQL-skript för hand. Du beskriver ändringen i C#-modellen, EF Core räknar ut skillnaden och genererar SQL:en åt dig — lokalt och i produktion.
När du läst detta ska du kunna
- Skapa och applicera en migration med
dotnet ef - Namnge migrationer så andra förstår vad de gör
- Rulla tillbaka en migration som gått fel
- Hantera migrationer i team utan att krocka
Komma igång
- Se till att
Microsoft.EntityFrameworkCore.Toolsär installerat i projektet. - Bekräfta att din
DbContextgår att instansiera (via DI eller en parameterlös konstruktor). - Kör:
dotnet ef migrations add InitialCreatedotnet ef database updateMigrations/-mappen får två filer: själva migrationen och en uppdaterad modell-snapshot. Snapshoten beskriver nuläget och används när nästa migration räknas fram.
Namnge smart
Beskriv förändringen, inte tidpunkten: AddEnrollment, RenameCourseTitle, SeedStatusValues — inte Migration1 eller Fix. PascalCase, inga mellanslag. Ångrat dig innan du applicerat den? dotnet ef migrations remove tar bort den senaste.
Uppdatera databasen
dotnet ef database updateUppdaterar standarddatabasen från konfigurationen. Ska du mot en annan miljö, lägg till --connection med en annan anslutningssträng.
Rulla tillbaka
dotnet ef database update PreviousMigrationNameBra när en migration beter sig konstigt i test. Sista utvägen — dotnet ef database update 0 — river databasen och börjar om från noll.
Migrationer i team
Checka in migrationsfilerna i Git precis som all annan kod. Kör dotnet ef database update direkt efter en pull så din lokala databas hänger med koden. Krockar två migrationer? Ta bort dem lokalt, generera om från den senaste koden, pusha igen.
Inför produktion
dotnet ef migrations bundlebygger ett fristående verktyg som kan köra migrationen utan .NET SDK installerat på servern.dotnet ef migrations scriptgenererar rå SQL, om du vill granska eller köra den manuellt.- Kör alltid i staging innan produktion — en migration som ser oskyldig ut kan låsa en stor tabell längre än du tror.
Obligatorisk dad-joke
Varför är databaser så bra på att flytta?
De har redan övat på migrationer.