2016-12-01 2 views
1

패키지 관리자 콘솔에서 Update-Database를 실행하면 시드 프로세스가 실행됩니다. 다른 시드 명령을 실행하기 위해 다른 명령을 실행할 수 있습니까? 같은패키지 관리자 콘솔에서 사용자 지정 시드 메서드를 실행할 수 있습니까?

뭔가 :

Seed-Test-Data 

개발자들의 로컬 데이터베이스에 테스트 데이터를 씨앗 것이다.

정상적인 시드 방법으로이 명령을 실행하고 싶지 않습니다. 마이그레이션이 실행될 때 프로덕션 데이터베이스에서이 명령이 실행되기 때문입니다.

답변

0

그냥 정규 시드를 사용하지만 컨텍스트가 사용중인 서버를 확인하고 그에 따라 작동하십시오. 어느 화이트리스트 dev에 데이터베이스 또는 블랙리스트 찌르다 서버 : 당신은 또한 당신의 Web.config의 환경을 확인하는 설정을 추가 할 수 있습니다

internal sealed class Configuration : DbMigrationsConfiguration<ApplicationDbContext> 
{ 
    protected override void Seed(ApplicationDbContext context) 
    { 
     if (context.Database.Connection.DataSource != "ProductionServer") 
     { 
      if (!context.MyTable.Any()) // If table is empty, seed it... 
      { 
       context.MyTable.AddOrUpdate(
        p => p.ID, 
         new MyTable{ ID = 1, FullName = "Mary Peters" }, 
         new MyTable{ ID = 2, FullName = "Mike Lambson" }, 
         new MyTable{ ID = 3, FullName = "Steve Miller" } 
       ); 
      } 


     } 
     ... 
    } 
} 

:

if (ConfigurationManager.AppSettings["Environment"] == "DEV") 
{ 
    ... 
}