こんにちは、Nanayakuです。
今回は、作成しているアプリケーションのER図をPDFで出力する「rails-erd」と言うGemの導入と実行方法を紹介します。
railsでER図を出力する - rails erd | Dendoronを参考にDoker環境で行います。
目次
rails-erdとは
rails-erdは、インストールしたアプリケーションのDBのER図をPDFで出力してくれるGemのことです。
つまり、各テーブルがどこと関連付けしているかを画面で確認することが出来、漏れがないかなど確認しやすいメリットがあります。
メモ
ER図とは、テーブルの関連付けを表した図のことです
若手プログラマー必読!5分で理解できるER図の書き方5ステップ
上記の記事で出てくるユースケース図とは、仕様書のことで誰が何を出来るかを表した図のことです
導入
graphviz
Dockerでの導入方法は、まず、Dockerfileに「graphviz」を書き足します。
自分は以下のように書きました。
FROM ruby:2.6.3 RUN apt-get update -qq && apt-get install -y nodejs postgresql-client imagemagick graphviz RUN mkdir /myapp WORKDIR /myapp COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock RUN bundle install COPY . /myapp # Add a script to be executed every time the container starts. COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 # Start the main process. CMD ["rails", "server", "-b", "0.0.0.0"]
「graphviz」はグラフ描写ツールです。
これをコンテナ作成時にインストールしておけば、複数人で開発する場合でも、各自の開発環境に影響される事なく見ることが可能です。
Docker以外では下記でインストールします。
・Mac
$ brew install graphviz # Homebrew on Mac OS Xまたは
$ port install graphviz # Macports on Mac OS X・Ubuntu
$ sudo apt-get install graphviz
gem 'rails-erd'
Gemfileのdevelopment環境に「gem 'rails-erd'」を追記し、bundle installします。
group :development do # Access an IRB console on exception pages or by using <%= console %> anywhere in the code. gem 'web-console', '>= 3.3.0' gem 'listen', '>= 3.0.5', '< 3.2' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring #↓ gem 'rails-erd' #↑ gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' end
実行
下記のコマンドで出力することが出来ます。
$ erd #または $rake erd #または $rails erd
オプションを付けることで、「foreign_keys」や「primary_keys」を表示できます。
Rails ERD – Customisation options
自分が設計したER図と現在のテーブル同士の関係を確認をすると下の画像のようになりました。
設計したER図
出力されたER図
自分は、予定していたものと違っているので、調整が必要です。
ER図のPDFは、アプリケーションのディレクトリ内に出来ます。
最後に
備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。