Custom Migrations History Table
By default, EF Core keeps track of which migrations have been applied to the database by recording them in a table named
__EFMigrationsHistory
. For various reasons, you may want to customize this table to better suit your needs.
Important
If you customize the Migrations history table after applying migrations, you are responsible for updating the existing table in the database.
Schema and table name
You can change the schema and table name using the MigrationsHistoryTable()
method in OnConfiguring()
(or
ConfigureServices()
on ASP.NET Core). Here is an example using the SQL Server EF Core provider.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer(
_connectionString,
x => x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"));
Other changes
To configure additional aspects of the table, override and replace the provider-specific
IHistoryRepository
service. Here is an example of changing the MigrationId column name to Id on SQL Server.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options
.UseSqlServer(_connectionString)
.ReplaceService<IHistoryRepository, MyHistoryRepository>();
Warning
SqlServerHistoryRepository
is inside an internal namespace and may change in future releases.
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");
}
}
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: I hele 2024 udfaser vi GitHub-problemer som feedbackmekanisme for indhold og erstatter det med et nyt feedbacksystem. Du kan få flere oplysninger under:Indsend og få vist feedback om