Mysql

MySQL Workbench 로 DB 업데이트 하기

먹세 2018. 7. 17. 15:17

우선 ERD가 있을때 최신 ERD에서 기존 DB를 업데이트 하는 방법.


1. 업데이트 할 DB의 테이블들을 삭제한다.

테이블들 선택 후 우클릭 'Drop tables'


2. Synchronize Model

- 워크벤치 상단메뉴 -> Synchronize Model(Ctrl+Shift+Z)

- 업데이트 하고싶은 DB 접속 정보를 넣고 Next

- Override target schema to be synchronized with : 업데이트 할 DB 선택 후 Override Target 버튼 클릭

- Model Schema 체크 후 Next


그럼 최신 ERD와 업데이트 할 DB를 비교해서 없는 테이블 들이 표시된다.


3. 업데이트 할 Table 들을 선택 후 Next


4. 쿼리문이 나오면 전체 복사 후 텍스트 에디터로 옮긴다.


5. FOREIGN KEY 참조 제거

Create 문 안에 각각 Foreign Key가 걸려있는 경우에는 참조 무결성 기능이 있기 때문에 관계 설정이 되어있는 데이터일 경우에는 삭제가 되지 않는다.

그래서 모든 Create 문에서 아래 부분을 삭제해준 후 쿼리를 날려준다.


=====================

FOREIGN KEY (`user_id`)

REFERENCES `mydb`.`users` (`id`)

=====================


참고로 워크벤치 ERD에서 테이블을 더블클릭 한 후, 하단 Foreign Keys 탭을 눌러보면

아래와 같이 옵션을 설정할 수 있다.

키 별로 On Update, On Delete 이벤트시 액션을 설정할 수 있다.

NO ACTION 은 액션이 일어나지 않는다는뜻이고, CASCADE 는 관계 설정된 다른 테이블의 데이터들도 해당 액션이 일어난다는뜻.



6. 필요한 데이터 들을 테이블에 넣어준다.







반응형