문제

단순성을 위해. 런타임 중에 Nhibernate의 SchemaUpdate와 결합 된 Fluent Nhibernate의 자동 캡처를 사용하고 있습니다. 각 실행마다 Automapper는 모든 엔티티 클래스에 대한 매핑을 생성하고 SchemaupDate는 스키마를 기존 데이터베이스에 적용합니다. 나는 그것이 빈 데이터베이스에 대해서도 올바르게 작동한다는 사실에 놀랐습니다. 지금까지 개발 환경에서 잘 작동했으며 버그에 다소 빨리 응답 할 수있었습니다.

제 질문은 생산 코드를 떠날 정도로 신뢰할 수 있는지 여부입니다. 분명히 프로덕션 환경에서 프로그램이 시작될 때마다 실행할 필요는 없지만 증분 제품 업데이트에 유용 할 것입니다 (제품 선박 후 도메인을 주요 변경할 계획은 없지만).

(아마도 내 실제 질문은이 두 도구를 함께 사용하는 것이 얼마나 안전합니까?)

업데이트

응용 프로그램에는 독립형 데스크탑과 다중 사용자 클라이언트/서버의 두 가지 버전이 있습니다. 또한 비즈니스 도메인 (Tax Software)의 특성으로 인해 매년 깨끗한 데이터베이스로 시작하는 사치가 있습니다.

도움이 되었습니까?

해결책

이를 제작 코드에서 실행할 수 있으려면 생산 응용 프로그램이 데이터베이스에 연결하는 데 사용하는 계정은 데이터베이스 스키마를 변경할 수있는 권한이 있어야합니다.

그것만으로도 nhibernate 코드의 품질/신뢰성에 관계 없이이 접근법에서 당신을 막아야합니다.

다른 팁

나는 그것을 위험에 빠뜨리지 않을 것입니다. 잘 작동하는 것은 프로덕션에서 복원 된 준비 서버에서 실행 한 다음 데이터베이스 비교 도구 (예 : Red Gate)를 사용하여 변경 사항을 검사하고 스크립트를 생성하는 것입니다.

SchemaUpdate는 항상 부가적이고 비파괴적인 변경을 수행하여 무효가 될 수없는 컬럼과 무효 열을 만들어 낼 수 없다는 점을 고려할 수 있습니다.

다시 말해, 생산 사용은 절대적으로 아닙니다.

데이터가 얼마나 중요한지에 달려 있습니다! 나는 그것이 은행 시스템에 좋은 생각이라고 의심합니다. 한 가지 외에는 업데이트에 아무런 문제가 없었습니다. 때로는 올바르게 이름을 바꾸지 않습니다. 더 많은 것은 이런 스키마를 수정할 수있는 계정과 연결하는 보안 위험입니다. :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top