엔터티 프레임 워크 코드 우선-프로덕션 데이터베이스에 대해 Update-Database를 실행하는 방법
프로덕션 데이터베이스에 대해 'Update-Database'명령을 실행하는 방법을 알고 싶습니다.
'Update-Database'데이터베이스는 내 로컬 컴퓨터에서 제대로 작동하지만 프로덕션 데이터에 대해 작동하도록하려면 어떻게해야합니까?
따라서 내 응용 프로그램을 변경 한 다음 Visual Studio를 통해 '게시'를 실행하면 코드 측면에서는 잘 작동하지만 프로덕션 데이터에 대해 'Update-Database'명령을 어떻게 실행합니까?
이 질문이 이해되기를 바랍니다 ...
감사,
@David가 이미 말한 것을 추가하려면 ...
개인적으로 저는 automatic updates
'실시간'시나리오를 신뢰하지 않으며 항상 수동 데이터베이스 관리를 선호합니다 (예 : permissions
공유 호스팅 등은 말할 것도없고 Db를 생성하거나 변경 하는 데 문제가 있습니다). 그러나 내가 본 것에서 마이그레이션은 동기화와 관련하여 매우 견고합니다 (사실 일반적으로 '완전'하는 유일한 방법은 Db를 제거하고 전체 / 새로 업데이트를 강제하는 것입니다).
저는 여기에 얼마 전에 만든 게시물입니다 방법 script
과 synchronize database / code
및 배포 시나리오 (때 문제가 발생)에 맞도록. (아직) 적용되지는 않지만 명심해야 할 사항입니다.
MVC3 및 Code First 마이그레이션- " 'blah'컨텍스트를 지원하는 모델이 데이터베이스가 생성 된 이후 변경되었습니다."
Entity Framework가 초기화 될 때 애플리케이션이 데이터베이스를 자동으로 업데이트하도록 프로덕션에서 Entity Framework (코드 우선) 마이그레이션 사용을 참조하십시오 .
이제 마이그레이션을 수동으로 제어하는 것이 더 편하다면 개발자 컴퓨터에서 Update-Database 명령에 -Script 인수를 사용하여 프로덕션 데이터베이스에 대해 실행할 수있는 SQL 스크립트를 생성 할 수 있습니다.
http://msdn.microsoft.com/en-us/data/jj591621.aspx(SQL 스크립트 가져 오기 섹션 참조)
당신은 단지 하시겠습니까 자동으로 최신 버전 이제까지 당신의 응용 프로그램이 실행 (개발 및 생산)에 대한 데이터베이스를 업데이트?
자동 마이그레이션을 신뢰할 수 있고 데이터베이스를 수동으로 마이그레이션하는 것이 불가능한 매우 간단한 시나리오를 제외하고는 이것은 좋은 생각이 아닐 수 있습니다. 이 답변을 참조하십시오 : https://stackoverflow.com/a/15718190/2279059 . 이 경고를 무시하면 계속 읽으십시오.
다음에 다음을 추가하십시오 web.config
.
<entityFramework>
<contexts>
<context type="MyAssembly.MyContext, MyAssembly" disableDatabaseInitialization="false">
<databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion`2[[MyAssembly.MyContext, MyAssembly], [MyAssembly.Migrations.Configuration, MyAssembly]], EntityFramework" />
</context>
</contexts>
이것은 무섭게 보일 수 있지만 기본적으로 다음 코드와 동일합니다.
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Migrations.Configuration>());
운이 좋지 않다면 web.config
이 코드를에 넣을 수도 있습니다 Global.asax
. 개인적으로 코드보다 구성을 선호합니다.
구성 파일이 더 깔끔하게 보이 MigrateDatabaseToLatestVersion
도록하려면 템플릿 클래스 에서 새 클래스를 파생 시켜 web.cofig
파일 에서 유형 인수를 전달하는 데 암호 구문을 사용할 필요가 없습니다 .
public class MyDatabaseInitializer : public MigrateDatabaseToLatestVersion<MyContext, Migrations.Configuration> {}
이것이하는 일은 데이터베이스를 최신 버전으로 자동 업데이트하는 데이터베이스 이니셜 라이저를 설정하는 것입니다.
(출처 및 자세한 내용 : http://www.ralphlavelle.net/2012/09/entity-framework-code-first-webconfig.html )
'developer tip' 카테고리의 다른 글
Keras, 모델을 훈련시킨 후 어떻게 예측합니까? (0) | 2020.11.12 |
---|---|
HTML에서 div 센터를 정렬하는 방법 (0) | 2020.11.12 |
부모의 componentDidMount가 자식의 모든 componentDidMount 후에 호출됩니까? (0) | 2020.11.12 |
git은 Unpacking Objects 단계에서 멈춤 (0) | 2020.11.12 |
Git : 경고 : refname 'master'가 모호합니다. (0) | 2020.11.11 |