sql >> Database teknologi >  >> RDS >> Mysql

EF Core `opdateringsdatabase` på MySql fejler med `__EFMigrationsHistory' eksisterer ikke`

Dette er ikke relateret til ASP.NET Identity eller ASP.NET Core. Dette er relateret til Entity Framework generelt. Når du opdaterer en database, bruger EF __EFMigrationsHistory at registrere, hvilke migreringer der blev udført, så den ikke udfører dem igen i fremtiden.

Denne funktionalitet implementeres af databaseudbyderen , ikke EF selv. Der var mindst ét ​​tilfælde, hvor Npgsql-udbyderen til PostgresSQL ikke oprettede tabellen .

Løsningen er nem - lav selv bordet :

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

OPDATERING

Der var en anden lignende spørgsmål i 2016. Dette er en fejl hos den officielle MySQL-udbyder. Rettelsen er at oprette tabellen. Heller ikke den eneste. Asynkrone operationer forfalskes ved at køre dem på en anden tråd for eksempel.

Jeg vil foreslå, at du undersøger tredjeparts MySQL-udbydere såsom Pomelo.EntityFrameworkCore.MySql . De fundet og rettet migrationshistorik-fejlen for 1 år siden.

Da ejeren af ​​MySQL er Oracle , forvent ikke en masse fremskridt på stikket. Eller databasen.




  1. kontrollere, om forespørgslen resulterer i tom række mysqli

  2. Fejl (fejlkode:1175) under udførelse af opdateringskommando på bordet ved hjælp af MySQL Workbench 5.2

  3. Sequelize:Fejl:Fejl:Tabel1 er ikke knyttet til Tabel2

  4. ADDTIME() Eksempler – MySQL