Mysql
 sql >> Datenbank >  >> RDS >> Mysql

EF Core „update-database“ auf MySql schlägt fehl mit „__EFMigrationsHistory“ existiert nicht“.

Dies hat nichts mit ASP.NET Identity oder ASP.NET Core zu tun. Dies bezieht sich auf Entity Framework im Allgemeinen. Wenn Sie eine Datenbank aktualisieren, verwendet EF den __EFMigrationsHistory um aufzuzeichnen, welche Migrationen ausgeführt wurden, damit sie in Zukunft nicht noch einmal ausgeführt werden.

Diese Funktionalität wird vom Datenbankanbieter implementiert , nicht EF selbst. Es gab mindestens einen Fall, in dem der Npgsql-Anbieter für PostgresSQL die Tabelle nicht erstellt hat .

Die Lösung ist einfach - erstellen Sie die Tabelle selbst:

CREATE TABLE `__EFMigrationsHistory` 
( 
    `MigrationId` nvarchar(150) NOT NULL, 
    `ProductVersion` nvarchar(32) NOT NULL, 
     PRIMARY KEY (`MigrationId`) 
);

AKTUALISIEREN

Da war ein weiterer ähnliche Frage im Jahr 2016. Dies ist ein Fehler des offiziellen MySQL-Anbieters. Die Lösung besteht darin, die Tabelle zu erstellen. Auch nicht der einzige. Asynchrone Operationen werden vorgetäuscht, indem sie beispielsweise auf einem anderen Thread ausgeführt werden.

Ich würde vorschlagen, dass Sie MySQL-Drittanbieter wie Pomelo.EntityFrameworkCore.MySql untersuchen . Sie gefunden und behoben der Fehler im Migrationsverlauf vor 1 Jahr.

Da der Eigentümer von MySQL Oracle ist , erwarten Sie keine großen Fortschritte beim Connector. Oder die Datenbank.