Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Entity Framework com MySql e Migrations falhando porque o comprimento máximo da chave é 767 bytes


Resposta parafraseada de Adicionando contexto de MigrationHistory personalizado ...

O EF6 usa um MigrationHistory tabela para acompanhar as alterações do modelo e garantir a consistência entre o esquema do banco de dados e o esquema conceitual. Esta tabela não funciona para MySQL por padrão porque a chave primária é muito grande . Para remediar essa situação, você precisará reduzir o tamanho da chave para essa tabela.

Essencialmente, o EF6 permite que você modifique o tamanho da chave para as colunas de índice MigrationId/ContextKey usando a API Fluent da seguinte forma:
modelBuilder.Entity<HistoryRow>().Property(h => h.MigrationId).HasMaxLength(100).IsRequired();
modelBuilder.Entity<HistoryRow>().Property(h => h.ContextKey).HasMaxLength(200).IsRequired();

Completo Instruções aqui...