Mysql
 sql >> база данни >  >> RDS >> Mysql

EF Core „update-database“ на MySql се проваля с „__EFMigrationsHistory“ не съществува“

Това не е свързано с ASP.NET Identity или ASP.NET Core. Това е свързано с Entity Framework като цяло. Когато актуализирате база данни, EF използва __EFMigrationsHistory за да запише кои миграции са били изпълнени, за да не ги изпълнява отново в бъдеще.

Тази функционалност се реализира от доставчика на база данни , а не самия EF. Имаше поне един случай, в който доставчикът на Npgsql за PostgresSQL не е създал таблицата .

Решението е лесно - създайте таблицата сами :

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

АКТУАЛИЗИРАНЕ

Имаше друг подобен въпрос през 2016 г. Това е грешка на официалния доставчик на MySQL. Поправката е да създадете таблицата. Не и единственият. Асинхронните операции се фалшифицират, като се изпълняват в друга нишка например.

Предлагам ви да проучите доставчици на MySQL от трети страни като Pomelo.EntityFrameworkCore.MySql . Те намериха и коригираха грешката в историята на миграцията преди 1 година.

Като се има предвид, че собственикът на MySQL е Oracle , не очаквайте голям напредък по конектора. Или базата данни.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Драйвер за превключване на CodeIgniter от mysql --> mysqli

  2. SQLSTATE[HY000] [2002] php_network_getaddresses:getaddrinfo неуспешно:предоставено име на възел или име на сървър или неизвестно

  3. Изберете * от таблица 1, която не съществува в таблица 2 с условно

  4. mysql oledb драйвер

  5. Какъв е най-добрият подход за намиране на всички адреси, които са на определено разстояние до избраната точка