Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

EF Core `update-database` trên MySql không thành công với` __EFMigrationsHistory 'không tồn tại`

Điều này không liên quan đến ASP.NET Identity hoặc ASP.NET Core. Điều này liên quan đến Khung thực thể nói chung. Khi bạn cập nhật cơ sở dữ liệu, EF sử dụng __EFMigrationsHistory để ghi lại những lần di chuyển nào đã được thực hiện để nó không thực hiện lại chúng trong tương lai.

Chức năng này được thực hiện bởi nhà cung cấp cơ sở dữ liệu , không phải chính EF. Có ít nhất một trường hợp nhà cung cấp Npgsql cho PostgresSQL không tạo bảng .

Giải pháp rất dễ dàng - tự tạo bảng:

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

CẬP NHẬT

Đã có khác câu hỏi tương tự vào năm 2016. Đây là một lỗi của nhà cung cấp MySQL chính thức. Cách khắc phục là tạo bảng. Không phải là người duy nhất. Các hoạt động không đồng bộ được làm giả bằng cách chạy chúng trên một luồng khác chẳng hạn.

Tôi khuyên bạn nên điều tra các nhà cung cấp MySQL bên thứ ba như Pomelo.EntityFrameworkCore.MySql . Chúng được tìm thấy và khắc phục lỗi lịch sử di chuyển 1 năm trước.

Cho rằng chủ sở hữu của MySQL là Oracle , đừng mong đợi nhiều tiến bộ trên trình kết nối. Hoặc cơ sở dữ liệu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với cơ sở dữ liệu MySQL từ xa thông qua SSH bằng Java

  2. Làm thế nào để phát hiện xem một người dùng đã đăng xuất, trong php?

  3. Giám sát các kết nối đã sử dụng trên mysql để gỡ lỗi 'quá nhiều kết nối'

  4. Chọn các hàng cho đến khi tổng số tiền được đáp ứng trong một cột (mysql)

  5. Ứng dụng bị đóng băng khi cơ sở dữ liệu được gọi