본문 바로가기
개발/기타

[erwin] forward engineering

by hamcheeseburger 2021. 7. 2.

Forward engineering 이란?

"Forward engineering is the process of building from a high-level model or concept to build in complexities and lower-level details."

 

"복잡한 하위 레벨의 디테일을 구축하기 위해 상위 모델을 만드는 작업"

 

erwin의 경우로 생각해보면,

erwin에서 생성한 Entity들을 sql ddl 문으로 변경시키는 것이다.

 

Reverse engineering 이란?

 

"Forward engineering is thus related to the term 'reverse engineering,’ where there is an effort to build backward, from a coded set to a model, or to unravel the process of how something was put together."

 

"코드에서 모델로, 어떤 프로세스의 생성 과정을 역추적하는 방법"

 

Forwarding engineering의 반대 개념으로써, sql ddl 문을 erwin entity로 변경시키는 것이다.

 

 

적용하기

Actions -> Schema 선택

- mysql 기준

생성할 테이블들이 db에 존재해 있고, 그것들을 지우고 다시 만들고 싶은 경우는 DROP TABLE을 체크하자.

Procedure의 경우도 마찬가지. 이미 존재하고, 그것들을 지우고 다시 만들고 싶다면 Drop procedure을 체크.

필요없다면 체크를 해제해도 된다.

 

preview를 선택하면 ddl문을 확인할 수 있다. 복사/붙여넣기 하여 사용하면 된다.

 

mysql의 경우에는 forward engineering에 그리 유의할 점은 없지만 oracle의 경우에는 신경써야 하는 부분이 있다.

 

 

- Oracle 기준

oracle과 mysql의 경우 forward engineering 창이 다를 것이다. oracle이 설정할 옵션들이 더 많음.

Option Selection -> Trigger -> erwin Generated 체크 해제

 

erwin Generated는 erwin으로 부터 무언가가 자동으로 생성이 되는데, 이것은 오히려 Oracle에서 DML을 실행할때 문제가 될 수 있다. 그러니 체크를 해제하도록 하자!

이전 댓글