保存图表失败!请确认Graphviz已经安装并且在您的路径中,或者使用filetype=dot。

10
当我运行rake db:migrate时,我会得到这个错误。
rake aborted!
Saving diagram failed!
Verify that Graphviz is installed and in your path, or use filetype=dot.

完整日志:

rake db:migrate
Loading application environment...
Loading code in search of Active Record models...
Generating Entity-Relationship Diagram for 20 models...
rake aborted!
Saving diagram failed!
Verify that Graphviz is installed and in your path, or use filetype=dot.
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram/graphviz.rb:207:in `rescue in block in <class:Graphviz>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram/graphviz.rb:198:in `block in <class:Graphviz>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `instance_eval'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `save'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:120:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:74:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/tasks.rake:41:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:18:in `update_model'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:3:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'
StandardError: GraphViz not installed or dot not in PATH. Install GraphViz or use the 'path' option
/home/bcc/.rvm/gems/ruby-2.2.3/gems/ruby-graphviz-1.2.2/lib/graphviz.rb:544:in `output'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram/graphviz.rb:200:in `block in <class:Graphviz>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `instance_eval'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `save'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:120:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:74:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/tasks.rake:41:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:18:in `update_model'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:3:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => erd => erd:generate
(See full trace by running task with --trace)
bcc@bcc /media/bcc/Other/work/incomingerasmus $ git branch
  master
* rails4
bcc@bcc /media/bcc/Other/work/incomingerasmus $ rake db:migrate
Loading application environment...
Loading code in search of Active Record models...
Generating Entity-Relationship Diagram for 20 models...
rake aborted!
Saving diagram failed!
Verify that Graphviz is installed and in your path, or use filetype=dot.
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram/graphviz.rb:207:in `rescue in block in <class:Graphviz>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram/graphviz.rb:198:in `block in <class:Graphviz>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `instance_eval'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `save'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:120:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:74:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/tasks.rake:41:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:18:in `update_model'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:3:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'
StandardError: GraphViz not installed or dot not in PATH. Install GraphViz or use the 'path' option
/home/bcc/.rvm/gems/ruby-2.2.3/gems/ruby-graphviz-1.2.2/lib/graphviz.rb:544:in `output'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram/graphviz.rb:200:in `block in <class:Graphviz>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `instance_eval'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `save'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:120:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:74:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/tasks.rake:41:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:18:in `update_model'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:3:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => erd => erd:generate
(See full trace by running task with --trace)

如果我使用 --trace 命令运行,会得到这个结果:

rake db:migrate --trace
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:migrate
** Invoke db:_dump (first_time)
** Execute db:_dump
** Invoke db:schema:dump (first_time)
** Invoke environment 
** Invoke db:load_config 
** Execute db:schema:dump
** Invoke erd (first_time)
** Invoke erd:generate (first_time)
** Invoke erd:options (first_time)
** Execute erd:options
** Invoke erd:load_models (first_time)
** Execute erd:load_models
Loading application environment...
** Invoke environment 
Loading code in search of Active Record models...
** Execute erd:generate
Generating Entity-Relationship Diagram for 20 models...
rake aborted!
Saving diagram failed!
Verify that Graphviz is installed and in your path, or use filetype=dot.
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram/graphviz.rb:207:in `rescue in block in <class:Graphviz>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram/graphviz.rb:198:in `block in <class:Graphviz>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `instance_eval'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `save'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:120:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:74:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/tasks.rake:41:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:240:in `call'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:240:in `block in execute'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:235:in `each'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:235:in `execute'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/bcc/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:201:in `block in invoke_prerequisites'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:199:in `each'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:199:in `invoke_prerequisites'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:178:in `block in invoke_with_call_chain'
/home/bcc/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:165:in `invoke'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:18:in `update_model'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:3:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:240:in `call'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:240:in `block in execute'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:235:in `each'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:235:in `execute'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/bcc/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:165:in `invoke'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:150:in `invoke_task'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:106:in `each'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:106:in `block in top_level'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:115:in `run_with_threads'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:100:in `top_level'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:78:in `block in run'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:176:in `standard_exception_handling'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:75:in `run'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/bin/rake:33:in `<top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/rake:23:in `load'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/rake:23:in `<main>'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'
StandardError: GraphViz not installed or dot not in PATH. Install GraphViz or use the 'path' option
/home/bcc/.rvm/gems/ruby-2.2.3/gems/ruby-graphviz-1.2.2/lib/graphviz.rb:544:in `output'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram/graphviz.rb:200:in `block in <class:Graphviz>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `instance_eval'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:142:in `save'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:120:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/diagram.rb:74:in `create'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/rails_erd/tasks.rake:41:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:240:in `call'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:240:in `block in execute'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:235:in `each'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:235:in `execute'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/bcc/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:201:in `block in invoke_prerequisites'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:199:in `each'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:199:in `invoke_prerequisites'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:178:in `block in invoke_with_call_chain'
/home/bcc/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:165:in `invoke'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:18:in `update_model'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rails-erd-1.4.5/lib/tasks/auto_generate_diagram.rake:3:in `block (2 levels) in <top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:240:in `call'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:240:in `block in execute'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:235:in `each'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:235:in `execute'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/bcc/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/task.rb:165:in `invoke'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:150:in `invoke_task'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:106:in `each'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:106:in `block in top_level'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:115:in `run_with_threads'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:100:in `top_level'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:78:in `block in run'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:176:in `standard_exception_handling'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/lib/rake/application.rb:75:in `run'
/home/bcc/.rvm/gems/ruby-2.2.3/gems/rake-10.5.0/bin/rake:33:in `<top (required)>'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/rake:23:in `load'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/rake:23:in `<main>'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `eval'
/home/bcc/.rvm/gems/ruby-2.2.3/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => erd => erd:generate

我不理解这个问题。我在将我的应用程序从Rails 3升级到Rails 4.2后遇到了这个问题。我的应用程序没有任何问题,但是当我运行rake db:migrate命令时,我会收到这个错误。如何解决这个问题?

错误日志中有一行可能很重要,但我不理解它。

GraphViz not installed or dot not in PATH. Install GraphViz or use the 'path' option
3个回答

21

这是因为你的项目使用了Rails ERD,一款可以自动生成实体关系图的 gem。它依赖于一个名为graphviz的库来运行。如果你想继续使用它,你需要安装graphviz。在 Linux 上,你可以通过控制台完成安装:

sudo apt-get install graphviz

如果您不想使用rails-erd宝石,请从您的Gemfile中删除并运行bundle。如果在您的Gemfile中没有看到它,请查看Gemfile.lock以确定需要rails-erd宝石的内容,并考虑删除该宝石。

3
即使我安装了Graphviz,它对我仍然无效。 - Magesh

5

请尝试以下命令。

erd --inheritance --direct --attributes=foreign_keys,content --filetype=dot
dot -Tjpg erd.dot > erd.jpg

安装Graphviz对我来说没有起作用 - 上述方法可以。 - Mark
太棒了,经过数小时的研究,这个小技巧解决了问题 :) 谢谢,务必先执行brew install graphviz! - Lahiru Jayaratne

3

对于Mac用户:

brew install graphviz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接