SchemaSpy를 사용하여 RDS 테이블 정보를 ER 다이어그램까지 자동으로 만들고 싶습니다.

6114 단어 MySQLDBRailsSchemaSpy

개요



SchemaSpy를 사용하여 연결 대상 DB의 Table 정보를 깨끗이 빼내고, 어쨌든 ER 그림으로 해주는 곳까지 해 주었으면 한다

SchemaSpy



GitHub - schemaspy/schemaspy: SchemaSpy code home

내가 한 일


  • EC2에 Docker 추가
  • SchemaSpy Docker 이미지 가져 오기
  • schema 생성
  • 로컬로 Schema 데이터를 DL

  • EC2에 Docker 추가


    $ sudo yum install -y docker
    $ sudo service docker start
    # ec2-userがdockerコマンドを実行できるように、ec2-userをdockerグループに入れる
    $ sudo usermod -a -G docker ec2-user
    

    SchemaSpy Docker 이미지 가져오기


    $ docker pull schemaspy/schemaspy
    # インストール確認
    $ docker images
    

    이대로 실행하면 다음 오류가 발생합니다.
    WARN - Connection Failure
    Failed to connect to database URL [jdbc:mysql://mysql:3306/hoge] Unknown system variable 'query_cache_size'
    

    MySQLJDBC 드라이버의 버전을 올리면 해결한다는 것이므로, MySQL 손에 넣는다
    $ mkdir -p drivers
    $ curl -L https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.16.tar.gz |
        tar xvzf - -C drivers --strip=1 mysql-connector-java-8.0.16/mysql-connector-java-8.0.16.jar
    

    스키마 생성



    우선 DB의 각 환경 변수를 export
    $ export DB_HOST={HOST名}
    $ export DB_PORT={Port番号}
    $ export DB_NAME={DB名}
    $ export DB_PASS={DBPass}
    $ export DB_USER={DBUser}
    

    Docker 시작
    $ docker run --rm --net="host" -v "$PWD/schema:/output" -v "$PWD/drivers:/drivers" -u root:root schemaspy/schemaspy:latest -t mysql -host ${DB_HOST}:${DB_PORT} -db ${DB_NAME} -u ${DB_USER} -p ${DB_PASS} -connprops useSSL\\=false -s ${DB_NAME}
    

    로컬로 Schema 데이터를 DL



    우선 EC2 앞에서 Schema 파일을 Zip화
    $ zip -r schema.zip schema
    

    로컬로 돌아가서 EC2에서 schema.zip 받기
    $ scp -i "$HOME/.ssh/{秘密鍵のPath}" ec2-user@{ipアドレス}:/home/ec2-user/schema.zip ./
    

    Zip 파일을 확장하고 브라우저에서 index.html을 엽니다.



    각 코드



    가능한 한 쉘에서 좋게 만들고 싶었기 때문에 Gits로 정리했습니다.
    install_docker.sh : EC2에 Docker 넣기

    htps : // st. 기주 b. 코m/카이온/96056d2033d2b4세409616에526아18388
    create_schema.sh : SchemaSpy를 사용하여 Schema 데이터를 만들고 Zip화(변수 입력 필수)

    htps : // 기 st. 기주 b. 코m/카이온/4d15cbc7바40에54699c548c84d6cbc31
    download_schema.sh : 로컬 위에서 Schema 데이터를 현재 디렉토리에 DL·해동·index.html을 전개하는 곳까지 해 준다

    htps : // 기 st. 기주 b. 코 m / 카이 온 / 아 796f63811 에어 5d49b3 에어 30

    참고 사이트



    Docker로 Saku와 DB에서 ER 다이어그램 만들기 - Qiita
    【SchemaSpy】 번거로움없이 RDS (MySQL)에서 ER 다이어그램을 생성하고 싶다 - Qiita
    Docker를 사용하여 MySQL 8에서 ER 다이어그램 만들기 - Qiita

    좋은 웹페이지 즐겨찾기