MySQL Workbench 로 DB 업데이트 하기
우선 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. 필요한 데이터 들을 테이블에 넣어준다.