sql >> Databasteknik >  >> RDS >> Mysql

EF Core `uppdateringsdatabas` på MySql misslyckas med `__EFMigrationsHistory' existerar inte`

Detta är inte relaterat till ASP.NET Identity eller ASP.NET Core. Detta är relaterat till Entity Framework i allmänhet. När du uppdaterar en databas använder EF __EFMigrationsHistory för att registrera vilka migreringar som utfördes så att de inte utförs igen i framtiden.

Denna funktionalitet implementeras av databasleverantören , inte EF själv. Det fanns åtminstone ett fall där Npgsql-leverantören för PostgresSQL inte skapade tabellen .

Lösningen är enkel - skapa bordet själv :

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

UPPDATERA

Det fanns en annan liknande fråga 2016. Detta är en bugg från den officiella MySQL-leverantören. Fixningen är att skapa tabellen. Inte den enda heller. Asynkrona operationer förfalskas genom att köra dem på en annan tråd till exempel.

Jag skulle föreslå att du undersöker tredjeparts MySQL-leverantörer som Pomelo.EntityFrameworkCore.MySql . De hittade och fixade migrationshistorikfelet för ett år sedan.

Med tanke på att ägaren till MySQL är Oracle , förvänta dig inte mycket framsteg på kontakten. Eller databasen.




  1. Bör varje användartabell ha ett klusterindex?

  2. Hur man får datumet från en sträng i Oracle

  3. Läs e-post imap php

  4. Gruppera efter dataintervall