Ruby / Rails

[Rails・Docker]作成しているアプリケーションのDBをER図で確認する

2019年9月8日

こんにちは、Nanayakuです。

今回は、作成しているアプリケーションのER図をPDFで出力する「rails-erd」と言うGemの導入と実行方法を紹介します。

railsでER図を出力する - rails erd | Dendoronを参考にDoker環境で行います。

rails-erdとは

rails-erdは、インストールしたアプリケーションのDBのER図をPDFで出力してくれるGemのことです。

つまり、各テーブルがどこと関連付けしているかを画面で確認することが出来、漏れがないかなど確認しやすいメリットがあります。

メモ

ER図とは、テーブルの関連付けを表した図のことです

若手プログラマー必読!5分で理解できるER図の書き方5ステップ

上記の記事で出てくるユースケース図とは、仕様書のことで誰が何を出来るかを表した図のことです

若手エンジニア必読!超絶分かるユースケース図-全知識と書き方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

railsでER図を出力する - rails erd | Dendoron

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は、アプリケーションのディレクトリ内に出来ます。

最後に

備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。

-Ruby / Rails
-

© 2021 Nanayaku blog Powered by AFFINGER5