Tabulka historie vlastních migrací

Ve výchozím nastavení EF Core informace o tom, které migrace se na databázi použily, tím, že je zaznamenává do tabulky s názvem __EFMigrationsHistory. Z různých důvodů můžete chtít tuto tabulku přizpůsobit tak, aby lépe vyhovovala vašim potřebám.

Důležité

Pokud přizpůsobíte tabulku Historie migrací po provedení migrací, zodpovídáte za aktualizaci stávající tabulky v databázi.

Název schématu a tabulky

Schéma a název tabulky můžete změnit pomocí metody MigrationsHistoryTable() v OnConfiguring() souboru (nebo ConfigureServices() na ASP.NET Core). Tady je příklad použití poskytovatele SQL Server EF Core dat.

protected override void OnConfiguring(DbContextOptionsBuilder options)
    => options.UseSqlServer(
        _connectionString,
        x => x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"));

Další změny

Pokud chcete nakonfigurovat další aspekty tabulky, přepište a nahraďte službu specifickou pro zprostředkovatele IHistoryRepository . Tady je příklad změny názvu sloupce MigrationId na ID na SQL Server.

protected override void OnConfiguring(DbContextOptionsBuilder options)
    => options
        .UseSqlServer(_connectionString)
        .ReplaceService<IHistoryRepository, MyHistoryRepository>();

Upozornění

SqlServerHistoryRepository je uvnitř interního oboru názvů a v budoucích verzích se může změnit.

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");
    }
}