EntityFramework 7, 마이그레이션 및 ConnectionString

c# entity-framework-core

문제

asp.net vnext 및 EF 7.0을 사용하여 간단한 웹 사이트를 만들려고합니다. 개발을 위해 localDB를 사용하고 마이그레이션이 잘 작동합니다. 그런 다음 Azure에 내 사이트를 배포하고 Azure SQL Server로 마이그레이션을 적용하려고합니다.

프로덕션 데이터베이스에 마이그레이션을 적용 할 수있는 방법이 있습니까? 아니면 마이그레이션을 위해 동적으로 연결 문자열을 변경하는 방법이 있습니까?

마이그레이션을 적용 할 때마다 연결 문자열을 변경하고 싶지는 마십시오.

수락 된 답변

마이그레이션을 적용하는 3 가지 방법이 있습니다.

  1. 프로그래밍 방식 (구형 : 아래 업데이트 참조)

    context.Database.ApplyMigrations()
    
  2. 명령 줄에서. 이는 원격 서버가 아닌 로컬 데이터베이스를 관리하는 개발자를위한 것입니다. 언급했듯이, Azure에 대해 실행하면 로컬 프로젝트에 Azure에 대한 연결 문자열을 포함해야합니다.

  3. 스크립트를 제작하고 수동으로 실행하십시오.

    context.Database.ApplyMigrations()
    

    (또는)

    context.Database.ApplyMigrations()
    

이 명령 (및 정확한 명령)에 대한 인수는 아직 100 % 설정되지 않았습니다. 마이그레이션에 대한 공식 문서는 없습니다. 그동안 이 설계 문서 는 마이그레이션을 위해 계획된 명령을 보여줍니다.

최신 정보

이제 API가 있습니다.

context.Database.ApplyMigrations()

인기 답변

Startup.cs 아래 코드는 시작할 때 데이터베이스 마이그레이션을 적용합니다.

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {

        // other app setup omitted.

        if (env.IsDevelopment())
        {
            // development settings here.
            app.UseDeveloperExceptionPage();
        }
        else
        {
            // production settings here.
            try
            {
                using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>()
                                             .CreateScope())
                {
                    serviceScope.ServiceProvider.GetService<YourDbContext>()
                                .Database.Migrate();
                }
            }
            catch
            {
                // ignored
            }
        }
    }



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.