2010-12-06 2 views
1

저희 제품은 여러 데이터베이스를 지원합니다. 현재 Firebird와 MSSql을 지원하고 있으며 오라클에 대한 향후 지원이 있습니다.여러 DBMS 지원. 업데이트하는 동안 클라이언트 DB를 업데이트하는 가장 좋은 전략은 무엇입니까?

우리 제품에 대한 업데이트를 배포 할 때 클라이언트의 데이터베이스 스키마도 업데이트해야 할 가능성이 있습니다.

전통적으로 DB를 올바른 버전으로 가져 오기 위해 실행되는 "테이블 변경 열 변경"과 같은 작업을 수행하는 DB 버전의 스크립트가 있습니다. 우리가 두 세트의 SQL 스크립트를 유지해야하기 때문에 이것은 번거 로움이되고있다.

우리는 db 계층에서 Entity Framework를 사용합니다. EF에는 이미 데이터베이스의 스키마가 들어 있습니다. 필자는 EF를 사용하는 매끄러운 방법이 있고 클라이언트 DB에 대한 업데이트를 처리하는 스키마에 대한 지식이 있습니까?

편집 -

이 사용하고있는 EF의 버전을 당신은 언급하지 않은 EF 4.0

답변

-1

입니다. V4에서는 "코드 우선"모델을 사용할 수 있습니다. ScottGu's post을 확인하십시오. 비록 당신이 필요로하는 모든 DB에서 지원된다면 나는 100 % 확실하지 않다. [편집] 기존 스키마를 업데이트하지 않고 새로운 스키마 만 생성합니다.

더 많은 DB를 지원하고 스키마를 자동 업데이트하는 nHibernate로 전환 할 가치가 있습니다. .

+2

코드 첫 자동 스키마 생성의 문제점은 버전 관리를 지원하지 않는다는 것입니다. 데이터베이스를 삭제하고 다시 생성하기 때문에 클라이언트가 필요하다고 생각하지 않습니다. 유창한 Nhibernate 스키마 생성에서도 같은 결과가 발생합니다. EF 팀은 다음 CTP를위한 마이그레이션 솔루션을 개발하고 있습니다. – ryudice

+0

http://stackoverflow.com/questions/366176/how-to-update-database-table-schemas-with-nhibernate-schema-generation을 확인하십시오. 나는 EF4가 똑같이 할 것이라고 생각했지만 아무 것도 찾을 수 없다. –

+0

EF4 (공식적으로)에서 no를 찾았다 : http://weblogs.asp.net/scottgu/archive/2010/07/23/entity-framework-4 -code-first-custom-database-schema-mapping.aspx # 7572584 –

관련 문제