기본적으로 EF Core는 이름이 지정된 __EFMigrationsHistory테이블에 기록하여 데이터베이스에 적용된 마이그레이션을 추적합니다. 다양한 이유로 필요에 맞게 이 테이블을 사용자 지정할 수 있습니다.
중요합니다
마이그레이션을 적용한 후 마이그레이션 기록 테이블을 사용자 지정하는 경우 데이터베이스의 기존 테이블을 업데이트해야 합니다.
스키마 및 테이블 이름
MigrationsHistoryTable() 메서드를 OnConfiguring() (ConfigureServices()의 경우 ASP.NET Core에서 사용)로 사용하여 스키마와 테이블 이름을 변경할 수 있습니다. 다음은 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>();
경고
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