Entity Framework Code First Migration - Lathund
Lägg till ny migrering
PM> Add-Migration "Namn För Migrering"
Kör migrering mot databas.
PM> Update-Database -Verbose
-ConnectionStringName "MyConnectionName"
-script //förhandsgranska script utan att köra
-f //force, kör trots att data kan raderas
Hämta alla migreringar som har körts på databasen
PM> Get-Migrations
Rulla tillbaka/framåt till en specifik migration
PM> Update-Database -TargetMigration:"1234"
Rulla tillbaka alla migreringar
PM> Update-Database -TargetMigration:0
Starta om från scratch och strunta i alla migreringar.
Radera den fysiska databasen och kör nedan, vartefter du tar bort migration-filerna i Migrations-katalogen. Sen är det bara att lägga upp en ny migrering som vanligt för att initiera alla klasser/tabeller.
PM> Enable-Migrations -Force
Kör SQL-filer som resurser i en migrering:
1 public partial class MigrationName: DbMigration
2 {
3 public override void Up()
4 {
5 this.Sql(SqlFiles.Drop_Job_ClearExpiredSessionData);
6 this.Sql(SqlFiles.Create_Job_ClearExpiredSessionData);
7 }
8
9 public override void Down()
10 {
11 this.Sql(SqlFiles.Drop_Job_ClearExpiredSessionData);
12 }
13 }
Skapa unikt index på kolumn:
1 CreateIndex(table: "DbTabell",
2 column: "DbKolumn",
3 unique: true,
4 name: "MittUnikaIndex");
5
6 DropIndex("DbTabell", "MittUnikaIndex");
Mergeproblem när man i två separata brancher skapar migrations som mergas in till samma branch, vilket vid update-database resulterar i: Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Vid add-migration vill den skapa en ny migration med samma innehåll som redan finns. Lösningen är att gå tillbaka till migreringen innan problemen, köra update-database mot den första problematiska (som targetmigration) och sen göra add-migration med samma namn som den andra migreringen som står på tur. Då uppdateras enbart resx-filen: Källa: https://coding.abel.nu/2012/02/ef-migrations-and-a-merge-conflict/
1Update-Database -Verbose -TargetMigration "201810081228449_Mig1"
2Add-Migration "201810291303139_Mig2"
3Update-Database -Verbose