사용자 지정 마이그레이션 기록 테이블
기본적으로 EF Core는 라는 __EFMigrationsHistory
테이블에 기록하여 데이터베이스에 적용된 마이그레이션을 추적합니다. 다양한 이유로 필요에 맞게 이 테이블을 사용자 지정할 수 있습니다.
Important
마이그레이션을 적용한 후 마이그레이션 기록 테이블을 사용자 지정하는 경우 데이터베이스의 기존 테이블을 업데이트해야 합니다.
스키마 및 테이블 이름
OnConfiguring()
(또는 ASP.NET Core의 ConfigureServices()
)에서 MigrationsHistoryTable()
메서드를 사용하여 스키마 및 테이블 이름을 변경할 수 있습니다. 다음은 SQL Server EF Core 공급자를 사용하는 예제입니다.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options.UseSqlServer(
_connectionString,
x => x.MigrationsHistoryTable("__MyMigrationsHistory", "mySchema"));
기타 변경 사항
테이블의 추가 측면을 구성하려면 공급자별 IHistoryRepository
서비스를 재정의하고 바꿉니다. 다음은 SQL Server에서 MigrationId 열 이름을 Id로 변경하는 예제입니다.
protected override void OnConfiguring(DbContextOptionsBuilder options)
=> options
.UseSqlServer(_connectionString)
.ReplaceService<IHistoryRepository, MyHistoryRepository>();
Warning
SqlServerHistoryRepository
는 내부 네임스페이스 내에 있으며 향후 릴리스에서 변경될 수 있습니다.
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");
}
}
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET