Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Por padrão, o EF Core controla quais migrações foram aplicadas ao banco de dados gravando-as em uma tabela chamada __EFMigrationsHistory. Por vários motivos, talvez você queira personalizar essa tabela para atender melhor às suas necessidades.
Importante
Se você personalizar a tabela de histórico de migrações depois de aplicar migrações, será responsável por atualizar a tabela existente no banco de dados.
Esquema e nome da tabela
Você pode alterar o esquema e o nome da tabela usando o MigrationsHistoryTable() método em OnConfiguring() (ou ConfigureServices() em ASP.NET Core). Aqui está um exemplo usando o provedor EF Core do SQL Server.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer(
_connectionString,
x => x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"));
Outras alterações
Para configurar aspectos adicionais da tabela, sobreponha e substitua o serviço específico IHistoryRepository do provedor. Aqui está um exemplo de alteração do nome da coluna MigrationId para Id no SQL Server.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options
.UseSqlServer(_connectionString)
.ReplaceService<IHistoryRepository, MyHistoryRepository>();
Aviso
SqlServerHistoryRepository está dentro de um namespace interno e pode mudar em versões futuras.
internal class MyHistoryRepository : SqlServerHistoryRepository
{
public MyHistoryRepository(HistoryRepositoryDependencies dependencies)
: base(dependencies)
{
}
protected override void ConfigureTable(EntityTypeBuilder<HistoryRow> history)
{
base.ConfigureTable(history);
history.Property(h => h.MigrationId).HasColumnName("Id");
}
}