'기본 데이터'라고 말하면 각 환경에 시드를한다고 가정합니다. 마이그레이션은 seeding mechanism을 제공합니다. Seed() 내에서 일반 코드에서와 같이 환경을 구분할 수 있습니다. 우리의 Web.config가 설정 변환을 사용하려면 :
이
protected override void Seed(BookService.Models.BookServiceContext context)
{
#if DEBUG
context.Authors.AddOrUpdate(x => x.Id,
new Author() { Id = 1, Name = "Test User" },
);
#else
context.Authors.AddOrUpdate(x => x.Id,
new Author() { Id = 1, Name = "Production User" },
);
#endif
}
마찬가지로 지금까지 마이그레이션 자체를 적용, 우리가 개발 this process 다음과 같습니다
protected override void Seed(BookService.Models.BookServiceContext context)
{
if (ConfigurationManager.AppSettings["DeployEnvironment"] == "UAT")
{
context.Authors.AddOrUpdate(x => x.Id,
new Author() { Id = 1, Name = "Test User" },
);
}
else if (ConfigurationManager.AppSettings["DeployEnvironment"] == "PROD")
{
context.Authors.AddOrUpdate(x => x.Id,
new Author() { Id = 1, Name = "Production User" },
);
}
}
또 다른 옵션은 컴파일러 지시어입니다. UAT에 배포 할 준비가되면 연결 문자열을 UAT로 지정하고 마이그레이션을 실행하거나 create a script을 사용하여 데이터베이스를 업데이트 할 수 있습니다. 우리는 PROD에서 this을 수행합니다.