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