FluentMigrator
Migration
개의 빌드 서버에서 시간이 초과 된 클래스가 많이 있습니다 (천 개 정도). 마이그레이션이 같은 방법으로 작업하는 모든 마이그레이션이 DB 마이그레이션을위한 SQL 스크립트를 실행 Up()
및 Down()
방법이 Migration
클래스에서 상속 - - 간단하고 쉬운 FluentMigrator
함께 일하지 않은 사람들을 위해C에서 시간 기록기 클래스 래퍼를 수행하는 방법
.
지금 마이그레이션 실행을 시작할 때 나는 시간을 로깅하는LoggingMigration
클래스를 도입 게으름 (그리고 단순히 프로젝트 VS에서
: LoggingMigration
에
: Migration
교체).
public class LoggingMigration : Migration
{
public DateTime StartTime { get; private set; }
public LoggingMigration()
{
this.StartTime = DateTime.Now;
Console.WriteLine("Start {0} - TIME: {1:yyyy-MM-dd HH:mm:ss.fff}", this.GetType().Name, StartTime);
}
public override void Up()
{
}
public override void Down()
{
}
}
어떤 마이그레이션이 오래 걸리는지 더 쉽게 알 수 있도록 마이그레이션이 실행 된 시간에 대해서도 알고 싶습니다.
내가 좋아하는 소멸자를 사용하는 생각을했다 :
~LoggingMigration()
{
Console.WriteLine("End(?) {0} - TIME: {1}", this.GetType().Name, DateTime.Now.Subtract(StartTime));
}
하지만 것은 단지에 volatile and unpredictable
어떻게 자식 클래스 마감 Up()
방법 후 실행됩니다 메커니즘을 추가하는 것입니다? 아니면 다른 방법으로 일합니까?
하이 마, 내가 좋아하는 (이 FluentMigrator에서 유래하지만 Migrator를에서 상속되는 클래스를 소개 할 수 마이그레이션 클래스를 수정할 수 없습니다 LoggingMigrator). 현재의 모든 마이그레이션에서'Up()'을'OverrideUp()'으로 바꿀 것을 제안하고 있습니까? –
@MatasVaitkevicius 맞습니다. 그 중 하나 또는 사용자 정의 특성을 사용할 수 있지만 개체 지향 방식으로 충실 것입니다. –