아직 ER 다이어그램의 관리로 소모되고 있습니까? SchemaSpy로 ER 다이어그램 자동 생성 및 관리

만나서 반갑습니다. 수수께끼의 집단 Zenelo에서 DBA나 SRE의 견습을 하고 있는 사람입니다.
처음으로 Qiita를 쓰므로 부드러운 타이틀에 비해서는 쓸모없고 꽤 내용이 얇습니다만 양해 바랍니다.

ER 다이어그램을 손으로 관리하는 것은 어렵습니다.



현재, 수수께끼의 집단 zenelo에서는 ER도를 ERMaster 라고 하는 툴로 관리하고 있다. ERMaster는 세세한 부분까지 ER도를 표현할 수 있는 훌륭한 툴이지만, Json형이나 Datetime(6)등 대응하고 있지 않기 때문에 표현할 수 없는 형태가 있거나, Eclipse를 열어야 하는 등 몇가지 과제가 있습니다.

무엇보다 손으로 관리하는 것이 힘들고, ER 다이어그램을 작성하는 것은, SRE 용어로 말하는 토일에 해당하는 작업이기 때문에,
SRE를 뜻하는 몸으로서는, 이 토일을 박멸하고 싶었고, 무엇인가 좋은 툴이 없는지를 찾고 있었습니다.

그래서 SchemaSpy의 등장



SchemaSpy이란, 지정한 Database의 테이블의 정보(Column나 Index)나, 관계(ER도)등을 잘 HTML로 출력해 주는 툴입니다.

그 멜페이 님도 사용 사례가 있고 CircleCI에서 자동 생성하고 있다고합니다.
htps // ch. 메르카리. 코m/엔트리/2018/05/25/133818

또, github의 「database-diagrams」태그로 제일의 스타수이며, 개발도 활발하게 행해지고 있는 것 같습니다.
htps : // 기주 b. 코 m / 토피 cs / 다타바세 - 아 g ms

SchemaSpy의 좋은 점



UI가 깨끗합니다.



이 손의 툴은 옛날의 견고한 UI의 이미지(편견)입니다만, 지금 바람의 UI로 매우 보기 쉽습니다.

샘플 링크
htp : //s ぇま spy. 오 rg/사 mpぇ/어서 x. HTML

docker run으로 만들 수 있습니다.



schemaspy는, docker의 image를 미리 제공해 주고 있으므로, docker를 실행할 수 있는 환경만 있으면, 이하의 커멘드로 일발로 작성할 수 있다.
이것에 의해 codebuild 등의 CI상에서 실행함으로써, ER도의 자동 생성을 할 수 있다.
docker run -v "$PWD/schema:/output" --net="host" schemaspy/schemaspy:6.1.0 -t mysql -host $ENDPOINT:3306 -db $DB_NAME -u $DB_USER -p $DB_PASSWORD -connprops useSSL\\=false -s information_schema 

※ 버전은 2020/05/25 현재 최신 버전의 6.1.0을 지정

사용법은 아래의 Qiita 기사를 알기 쉬웠습니다.

htps : // 코 m / 카무 키리 리 / ms / 아 b1669c19831c18db9 예
htps : // 코 m / 미라보 / ms / 9cd5826db0018177db6d

지정된 테이블의 관련 부분만 표시합니다.



보고 싶은 테이블을 클릭하면, 그 테이블과 직접 관계를 가지는 테이블만을 표시해 줍니다.

게다가, 각 관련 테이블은 링크가 되어 있어, 클릭하면 그 테이블의 상세 페이지로 날 수 있게 되어 있습니다.
여러 테이블을 관리하는 DB의 경우, 일반적인 ER 다이어그램의 도구는 테이블이 너무 많아서 무엇을 보면 좋을지 모르는 경우가 있으므로 매우 도움이 되는 기능입니다.

물론 전체도도 표시하는 것도 가능.
htp : //s ぇま spy. rg/사 mpぇ/레ぁ치온시 ps. HTML

마지막으로



codebuild 등과 조합하여 트리거가 발동하면 ER 다이어그램을 생성하여 S3에 publish하는 구조를 만들면 ER 다이어그램을 관리하는 고생에서 개방됩니다. 그 무거운 Eclipse를 열지 않아도 된다. ERMaster로부터의 마이그레이션은 아직 되어 있지 않지만, AWS 리소스를 이용한 구조의 부분에 대해서는 또 나중에 쓸까라고 생각합니다.

좋은 웹페이지 즐겨찾기