hello-world.jp.net
webエンジニアのメモ。とりあえずやってみる。

[mac][rails]erdを使ってER図を作成しようとしたらエラー発生

公開日時

Ruby2.1.0 Rails4.1.1 で確認

テーブル間の関連をぱっと一覧で見たかったので、ER図を作成しようと思い rails-erd gemを使ってDB定義から自動生成しようとしたところ、エラーが発生しました。

  • graphvizインストール
brew install graphviz
  • Gemfile追加
group :development do
  gem "rails-erd", github: 'paulwittmann/rails-erd', branch: 'mavericks'
end

mavericksの場合、githubのブランチからインストールを行わないと

Graphviz produced errors. Verify it has support for filetype=pdf, or use filetype=dot.」

というエラーが発生したので注意。

---- 2015/4/6追記 ----

久しぶりにerdを試してみたところ、mavericksブランチを切り替える必要なく

gem "rails-erd"

でインストールおよびER図の作成ができました。

---- 追記ここまで ----
  • ER図生成
./bin/rake erd

Loading application environment...
Loading code in search of Active Record models...
rake aborted!
Loading models failed!
Error occurred while loading application: dlopen(xxx/rmagick-2.13.2/RMagick2.bundle, 9): Library not loaded: /usr/local/lib/libpng15.15.dylib
  Referenced from: /usr/local/lib/libfreetype.6.dylib
  Reason: image not found -xxx/rmagick-2.13.2/RMagick2.bundle (You may need to install the rmagick gem) (LoadError)

コマンドを実行したところ上記のエラーに。。。

libpngのバージョンの違いでエラーになっているようです。

brew info libpng

--------
libpng: stable 1.6.12 (bottled)
http://www.libpng.org/pub/png/libpng.html
/usr/local/Cellar/libpng/1.5.17 (15 files, 1.0M) 
  Poured from bottle
/usr/local/Cellar/libpng/1.6.12 (17 files, 1.2M) *
  Poured from bottle

libpng 1.6.12 から libpng 1.5.17 に切り替えてみたところうまく動きました。

brew switch libpng 1.5.17

再度ER図生成

bundle exec rake erd

Loading application environment...
Loading code in search of Active Record models...
Generating Entity-Relationship Diagram for X models...
Done! Saved diagram to erd.pdf.

erdお手軽で便利ですね

参考


Related #mac

[mac][ruby]seleniumでchromeを使用する

rubyでselenium-webdriverを使ってchromeを起動しようとしたら以下のようなエラーが

[mac][vagrant]box名に別名を設定する

複数人で開発を行っている際に自分以外の人にVagrantfileを作成してもらった場合、同じOSでも人によってbox名が異なることがあります。

[mac]ssh-agentの鍵情報をキーチェーンに保存する

ssh認証する際に、パスフレーズを省略したり、認証の転送ができて便利な ssh-agent ですが、ssh-addしてもターミナルを再起動すると鍵が消えてしまうので困っていました。

[mac]1Passwordの便利ショートカット

1Password使ってますか?