sql >> Databáze >  >> RDS >> Mysql

EF Core `update-database` na MySql selže s `__EFMigrationsHistory' neexistuje`

To nesouvisí s ASP.NET Identity nebo ASP.NET Core. To souvisí s Entity Framework obecně. Když aktualizujete databázi, EF používá __EFMigrationsHistory zaznamenat, které migrace byly provedeny, aby je v budoucnu již neprováděl.

Tato funkce je implementována poskytovatelem databáze , nikoli samotný EF. Vyskytl se minimálně jeden případ, kdy poskytovatel Npgsql pro PostgresSQL nevytvořil tabulku .

Řešení je snadné - vytvořte si tabulku sami:

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

AKTUALIZACE

Byl tu další podobná otázka v roce 2016. Toto je chyba oficiálního poskytovatele MySQL. Oprava spočívá ve vytvoření tabulky. Ani ne jediná. Asynchronní operace jsou falešné například tím, že jsou spuštěny v jiném vláknu.

Navrhoval bych, abyste prozkoumali poskytovatele MySQL třetích stran, jako je Pomelo.EntityFrameworkCore.MySql . nalezli a opravili chyba historie migrace před 1 rokem.

Vzhledem k tomu, že vlastníkem MySQL je Oracle , nečekejte velký pokrok na konektoru. Nebo databáze.




  1. Jaký je nejúčinnější způsob, jak vybrat posledních n řádků v tabulce, aniž by se změnila struktura tabulky?

  2. Získejte záznamy z jedné tabulky, kde v jiné není žádný záznam

  3. Příkazy SQLite

  4. Použití SQL Serveru jako DB fronty s více klienty