2011-08-19 4 views
1

Entity Framework Code First는 존재하지 않는 경우 데이터베이스를 작성하고 매핑 개체를 기반으로 구조화합니다. 나는 Roundhouse가 NHibernate를 사용하는 Fluent Mapping 파일들과 같은 것을 할 것이라고 믿는다.어떤 ORM 프레임 워크가 SQL DDL을 빌드하고 실행할 것입니까?

모든 SQL DDL 생성 및 실행을 처리 할 다른 ORM (또는 Roundhouse와 같은 도구)이 있습니까?

답변

0

구성 파일에서 hbm2ddl.autocreate 또는 create-drop 또는 update으로 설정하면 최대 절전 모드가 설정됩니다. 자바를 사용하면, nHibernate에 대해서도 같은 것으로 가정합니다.

ORM이 ddl을 수행하지 않는다면, ORM이 ddl을 수행하지 않는다면, 적어도 그 핵심 기능은 충분합니다. 이모.

3

NHibernate는 generate database schema으로의 유창한 매핑이 필요하지 않습니다. 이 기능은 NHibernate에 코어에 내장되어 있습니다 : 내 경험에

new SchemaExport(_configuration).Execute(false, true, false); 

그러나이 메모리 통합 테스트 또는 초기 출시를 위해 주로 유용합니다. 생산 데이터베이스는 upgraded이어야합니다. 따로 보관하면 데이터에 영향을주지 않고 열, 테이블 및 외래 키를 추가 및 제거해야합니다. 연속성과 버전 관리 측면이 있습니다. NHibernate는 현재 매핑만을 알고 있습니다. 예를 들어 2 개월 전 고객 이름과 성을 "CustomerName"열에 저장 한 다음 이것을 "FirstName"과 "LastName"두 열로 나눠보기로 결정한 것입니다 (이는 아마도 가장 원시적 인 변경입니다. 만들 수 있습니다). NHibernate 작업은 몇 년 전부터 데이터 모델링 선택 사항을 기억하지 않고 현재 스키마를 객체에 매핑하는 것입니다.

제 경험상 업그레이드 스크립트를 작성하는 마법 도구는 없으며 수동으로 작성하거나 개발자가 검토해야합니다. 도구는 RoundhouseE처럼 이러한 스크립트를 실행하기위한 프레임 워크를 제공 할 수 있습니다. Scott Allen은 excellentseries에 대해 'forward-only, run-once'접근 방식을 사용합니다. (NH와 함께 RH 실행 콘솔 애플리케이션)을 refreshdatabase 개념을 사용하는 경우

+0

+1 좋은 해답은 – dotjoe

+0

라운드 하우스는 https://github.com/chucknorris/roundhouse/wiki/Roundhouserefreshdatabasefnh NHibernate에의 SchemaExport를하고들 SchemaUpdate 이용한다 – ferventcoder

관련 문제