rails-erd 분할 후 yaml의 설정 파일마다 자동으로 ERD 생성
개시하다
지난번'rails-erd는 어떻게 실체와 관련 정보를 얻습니까'에 이어 rails-erd에 관한 보도다.
rails-erd를 사용하여 명령을 사용하여 ERD를 자동으로 생성할 수 있습니다.다만, ERD에 모든 모델을 표시하려면 보기 어렵다.그러면 이번에는 각 그룹의 모델을 위해yaml의 설정 파일을 준비하고 하나의 명령으로 모든 그룹을 통일적으로 생성하는 ERD의 실현을 소개합니다.
참고로 엔브로스가 개발한MCS의 모든 모델을 하나의 ERD에 포함시켜 만들면 이런 느낌이 든다.😭
(※ 해상도를 낮춘다.)
전체 이미지
먼저 완성된 문서 구성을 소개한다.
erd
├── config
│ └── xxx.yml # 設定ファイルたち
├── xxx.png # 生成されたERDたち
lib
└── task/erd.rake # タスク
erd/config/부하는 XXX입니다.yml 설정 파일 설정 rails-erd 가져오기
rails-erd의 도입 방법에 대해 다른 소개문이 많기 때문에 이 글에서 생략합니다.
구성 파일 설정
모든 파일은 모든 옵션을 써야 하기 때문에 공통 옵션을 기록하는 공통 파일을 준비해야 한다. 개별 파일은 공통 파일과 차이만 쓴다.
일반 파일
우선 공통 파일을 준비하고 옵션을 기록합니다.
common.yml
attributes:
- content
- foreign_key
disconnected: true
filename: erd/dummy
filetype: png
indirect: false
inheritance: true
markup: true
notation: crowsfoot
orientation: vertical
polymorphism: false
sort: false
warn: false
title: dummy
exclude: null
only: null
only_recursion_depth: null
prepend_primary: false
cluster: false
splines: spline
※ 참고로 다음 명령은 어떤 옵션이 있는지 확인할 수 있습니다.$ erd -h
개별 파일
다음은 개별 서류를 작성한다.
여기에는
title
및 only
만 지정하여 매우 간단합니다.😊xxx.yml
title: sample title
only:
- XXX
- YYY
- ZZZ
※ 개별 파일의 파일 이름과 생성된 ERD의 파일 이름이 다르면 알 수 없으므로 옵션의 filename은 작업 중 자동으로 개별 파일의 파일 이름으로 덮어씁니다.작업 생성
Kernel.#system
를 사용하면 system("bundle", "exec", "erd")
형식으로 rails-erd가 준비한 작업을 수행할 수 있습니다. 더욱 간결하기 위해서 저는 RailsERD:::CLI를 사용하여 실현하고 싶습니다.※ RailsERD: CLI는 이름과 같이 CLI부터 ERD 생성을 수행하는 데 사용되는 클래스입니다.
erd.rake
# RailsERD::CLI を利用できるようにするため、rails_erd/cli を読み込む
require "rails_erd/cli"
namespace :erd do
desc "ERDの一括生成"
task bulk_generate: :environment do
common_file = Pathname.new("erd/config/common.yml")
common_options = YAML.load_file(common_file)
partial_files = Pathname.new("erd/config").glob("*").reject {|file| file == common_file }
partial_files.each do |partial_file|
partial_options = YAML.load_file(partial_file)
partial_file_name = File.basename(partial_file, ".*")
# 共通オプションと個別オプションの結合
# 個別ファイルのファイル名で filename を上書き
# キーを文字列からシンボルに変更する
options = common_options
.merge(partial_options)
.merge({ filename: "erd/#{partial_file_name}" })
.symbolize_keys
# ERD生成の開始
RailsERD::CLI.new(Dir.pwd, options).start
end
end
end
이렇게 되면 다음 명령은 ERD를 통일적으로 생성합니다!$ bundle exec rake erd:bulk_generate
모델 그룹 나누기 팁
상기 ERD의 대량 생성 방법에 대한 설명은 이미 끝났지만 모델의 그룹을 나누는 것도 일반적인 방법이 아니기 때문에 필자는 그룹을 나누면서 얻은 지식을 공유하고 싶습니다.
기능별 그룹화
한 ERD에 포함된 시계는 최대 10개 정도입니다.
만약 ERD에 10개 이상의 책상이 있다면 기능을 분할할 수 있는지 연구할 수 있다.
파일 이름이 기능 센터에 가까운 표 이름
notification_settings
이면 파일 이름을 notification_setting.yml
최후
rails-erd를 사용하여 여러 개의 ERD를 통일적으로 생성하는 방법과 모델을 그룹화하는 비결을 소개했다.신규 멤버로 프로젝트에 합류할 때 ERD가 있다면 비즈니스 논리에 대한 이해가 원활해질 수 있어 감사하다.만약 이 기사가 ERD를 준비하는 데 참고가 된다면 정말 좋겠다.
참고 자료
Reference
이 문제에 관하여(rails-erd 분할 후 yaml의 설정 파일마다 자동으로 ERD 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/akitoshi-n/items/a81acc4f5f0fcf079e44텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)