0

때때로 Microsoft는 클라이언트 네트워크에서 업데이트되는 인트라넷 웹 응용 프로그램을 개발합니다. 업데이트는 두 개의 구성 요소를 수동으로 수행됩니다EF 코드 우선 마이그레이션으로 오프라인 배포

  • 설치/이전 및 현재 버전 사이의 델타를 실행하는 SQL 스크립트를 실행 이전 내용
  • 의 맨 위에 새 응용 프로그램 파일을 압축 해제 한

우리는 ASP.NET WebForms/ADO.NET에서 ASP.NET MVC/Entity Framework 6.1로 코드베이스를 마이그레이션하는 중입니다. 우리는 자동 마이그레이션 설정을 사용하여 개발을 위해 코드 우선 마이그레이션을 사용하고 있습니다.

내 질문은 다음과 같습니다. 이제이를 어떻게 제작 단계로 변환 할 수 있습니까? 웹 주위의 대부분의 게시물은 WebDeploy 또는 이와 유사한 연결 방법을 사용하는 것으로 간주되지만 파일은 전자 메일 또는 다운로드를 통해 배포 된 다음 '오프라인으로 설치'됩니다. 마이그레이션을 활용하여 데이터베이스를 업데이트 할 수있는 방법이 있습니까? 아니면 SQLDelta 또는 이와 동등한 기능을 사용하여 클라이언트에서 실행될 변경 스크립트를 생성 할 수 있습니까?

많은 물리적 인 측면을 추상화하려는 Entity Framework의 힘으로 구현에 특화된 배포 방식으로 축소 될 수 있습니다. 많은 감사.

답변

2

매우 간단합니다.

마이그레이션에는 패키지 관리자 콘솔에서 실행할 수있는 명령이있어 마이그레이션을 적용하기위한 SQL 스크립트를 만들어 사용자가 저장하고 고객에게 전자 메일로 보낼 수 있습니다. 당신은 변환 할 수있는 스크립트를 만들 것을 이야기하고이 명령을

Update-Database -SourceMigration "Origin" -TargetMigration "Destination" -Script 

:이은 (아마 당신은 몇 가지 다른 옵션을 지정하는 다른 매개 변수를 추가해야합니다)이 작업을 수행하는 최소 필수 매개 변수입니다 "원본"상태의 데이터베이스를 "대상"상태의 데이터베이스로 변환합니다. 여기서 해당 마이그레이션은 해당 마이그레이션의 이름입니다. 이러한 변경 사항을 적용하기위한 전체 SQL 스크립트를 받게됩니다.

이 시나리오에서는 수동 마이그레이션을 만드는 것을 선호합니다. 이름에 대한 제어권을 더 많이 갖고 있기 때문에 원본 마이그레이션과 대상 마이그레이션을 쉽게 식별 할 수 있습니다.

을 : 당신이 필요한 매개 변수를 추가 도움이 필요하면

그런데

, 당신은 출력의 마지막 라인을 읽는다면, 당신이 거기에 다른 옵션을 볼 수 있습니다,

Update-Database -? 

를 실행할 수 있습니다

To see the examples, type: "get-help Update-Database -examples". 
For more information, type: "get-help Update-Database -detailed". 
For technical information, type: "get-help Update-Database -full". 

물론이 말은 다른 명령입니다.

+0

위대한 답변, 매우 유익하고 간결한, 고맙습니다. – Katstevens