Neu in .NET 6 [19]: Migration Bundles in Entity Framework Core

Der Dotnet-Doktor Holger Schwichtenberg  –  0 Kommentare

Ein Migration Bundle ist eine ausführbare Datei, die alle erforderlichen Datenbankschemamigrationen durchführt.

In Entity Framework Core 1.0 bis 5.0 konnte man Datenbankschemamigrationen zur Entwicklungszeit per Kommandozeilenbefehl (Update-Database) ausführen oder sich ein SQL-Skript für die spätere Ausführung erzeugen lassen (Script-Migration). Auch eine .NET-Methode stand zur Ausführung zur Laufzeit zur Verfügung (Migrate()).

Neu in Entity Framework Core 6.0 ist das sogenannte Migration Bundle: eine ausführbare Datei (EXE), die beim Start alle erforderlichen Datenbankschema-Migrationen ausführt.

Migration Bundles sind ein alternativer Weg zum Ausliefern von Schema-Migrationen, der sich für DevOps-Prozesse gut eignet. Auf Kundenseite werden Bundles aber wohl nur zum Einsatz kommen, wenn zu wenig Datenbank-Know-how vorhanden ist. Datenbankadministratoren werden die bisher üblichen SQL-Skripte bevorzugen.

Zum Erstellen eines Bundles dient in der NuGet Package Manager Console von Visual Studio das Commandlet

Bundle-Migration 

beziehungsweise der klassische Kommandozeilenbefehl

dotnet ef migrations bundle 

Im /bin-Verzeichnis entsteht dann eine ausführbare Datei Bundle.exe, die man in den DevOps-Prozess einbindet oder demjenigen, der das Datenbankschema aktualisieren will, ausliefert.

Beim Start der Bundle.exe kann man die Verbindungszeichenfolge einer Datenbank angeben, deren Schem aktualisiert werden soll. Ansonsten wird nach einer appsettings.json-Datei gesucht.

Bundle.exe --connection Verbindungszeichenfolge