2010-12-10 4 views
5

우리는 C#에서 SQL Server 2008과 함께 Entity Framework를 사용하는 응용 프로그램을 작성하고 있습니다. Visual Studio에서 디자이너를 사용하여 모델을 디자인하고 이로부터 엔티티를 자동 생성합니다.Entity Framework를 사용할 때 데이터베이스 마이그레이션 처리

Google은 버전 1.0을 개발 중입니다. 2.0을 릴리스하면 모델 및 기본 데이터베이스 구조를 변경해야합니다. 우리는 "데이터베이스 마이그레이션"을 필요로한다고 생각합니다.

전통적으로 데이터베이스에 '버전'과 같은 테이블이 있습니다. 소프트웨어의 새 버전을 만들 때마다 ALTER TABLE 문을 포함하는 데이터베이스 업그레이드 스크립트를 만들었습니다. 내 소프트웨어가 버전 표를 확인하고 데이터베이스를 '소프트웨어 버전'으로 업그레이드하는 데 필요한 업그레이드 스크립트를 실행합니다.

더 나은 처리 방법이 있습니까? alter table-scripts를 직접 작성하고 데이터베이스 구조를 업그레이드하기위한 자체 소프트웨어를 작성하지 않아도 좋을 것입니다.

답변

0

모델을 처음 만들었을 때했던 것만 큼 모델을 데이터베이스 용으로 설계했기 때문에 (예 : myapp 데이터베이스가있어서 내 앱이 실행되었지만 내 EF4 모델이 myapp_schema 데이터베이스). myapp_schema가 업데이트되면 Db Source Tools을 사용하여 업데이트 스크립트를 생성하고 myapp의 데이터베이스 스키마를 myapp_schema와 동일하게 만듭니다.

0

이 게시물을 Chech. 그것은 EF4의 CTP4에 관한 것이지만 이것이 필요한 것입니다.

http://blogs.msdn.com/b/efdesign/archive/2010/10/22/code-first-database-evolution-aka-migrations.aspx

는 Unforunately이 아직 사용할 수 없습니다. CTP5는 며칠 전에 출시되었으며 아직까지는 이것이 포함되지 않았다는 것을 알고 있습니다.

+0

차가움. 그러나 미래에 언젠가는 코드 우선보다는 모델 기반 접근 방식을 사용하여 솔루션이 작동한다면 훨씬 더 시원할 것입니다. ;-) – Martin

+0

나는이 기능이 코드 우선으로 제한되지 않고 모델 우선으로 확장되기를 희망하며 동의한다. 그리고 나는 그들이 가능한 빨리 그것을 풀어주기를 정말로 희망한다. 이것은 아마 해답이 될 수도 있습니다. 누군가가 실제로 이와 같은 현재의 모든 것을 알고 있기를 바랍니다. – gligoran

관련 문제