sql >> Base de Datos >  >> RDS >> Mysql

EF Core `update-database` en MySql falla con `__EFMigrationsHistory' no existe`

Esto no está relacionado con ASP.NET Identity o ASP.NET Core. Esto está relacionado con Entity Framework en general. Cuando actualiza una base de datos, EF usa el __EFMigrationsHistory para registrar qué migraciones se ejecutaron para no volver a realizarlas en el futuro.

Esta funcionalidad la implementa el proveedor de la base de datos , no EF en sí. Hubo al menos un caso en el que el proveedor de Npgsql para PostgresSQL no creó la tabla .

La solución es fácil:cree la tabla usted mismo:

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

ACTUALIZAR

Había otro pregunta similar en 2016. Este es un error del proveedor oficial de MySQL. La solución es crear la tabla. Tampoco el único. Las operaciones asincrónicas se falsifican ejecutándolas en un subproceso diferente, por ejemplo.

Le sugiero que investigue proveedores de MySQL de terceros como Pomelo.EntityFrameworkCore.MySql . Ellos encontraron y repararon el error del historial de migración hace 1 año.

Dado que el propietario de MySQL es Oracle , no espere mucho progreso en el conector. O la base de datos.