こんにちは!kossyです!
さて、今回は開発環境にdockerを使っている場合のrails-erdのセッティング方法について、
ブログに残してみたいと思います。
環境
Ruby 2.6.6
Rails 6.0.3.5
rails-erd 1.6.1
ruby-graphviz
docker desktop 2.3.6
docker-compose 1.27.0
dockerfileの修正
docker環境でrails-erdを使う場合、仮想マシン内にruby-graphvizをインストールしなくてはなりません。
以下のようなdockerfileがあるとします。
FROM ruby:2.6 ENV LANG C.UTF-8 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs vim RUN mkdir /app WORKDIR /app COPY Gemfile /app/Gemfile COPY Gemfile.lock /app/Gemfile.lock RUN bundle install COPY . /app
このdockerfile内でapt-getしてる行でgraphvizを追記します。
FROM ruby:2.6 ENV LANG C.UTF-8 RUN apt-get update -qq && apt-get install -y build-essential libpq-dev nodejs vim graphviz RUN mkdir /app WORKDIR /app COPY Gemfile /app/Gemfile COPY Gemfile.lock /app/Gemfile.lock RUN bundle install COPY . /app
この状態でコンテナを立ち上げ直しましょう
$ docker-compose build
gemfileを編集します。
group :development do gem 'listen', '~> 3.2' gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' gem 'rails-erd' # 追記 end
bundle installします。
$ docker-compose run web bundle install
PDFファイルを生成するには以下のコマンドを実行します。
$ docker-compose run web bundle exec erd
このコマンドを実行することで、アプリケーションのルートディレクトリ(appとかconfigとかtmpと置いてあるディレクトリと同じ階層)に、「erd.pdf」というファイルが生成されます。
蛇足
デフォルトの設定のままだと、外部キーが表示されなかったりするので、オプションを入れてコマンド実行もできます。
# timestampと主キー以外のカラムを表示 $ docker-compose run web bundle exec erd --attributes=content,foreign_keys
より詳しいオプションを知りたい方は以下ドキュメントをご覧ください。
voormedia.github.io
勉強になりました。
大いに参考にさせていただいたサイト
この場を借りて御礼を申し上げます。
Rails ERD – Customisation options
railsでER図を出力する - rails erd | Dendoron