rake db:migrate之后重新生成ERD

时间:2014-06-03 14:27:28

标签: ruby-on-rails ruby rails-migrations erd diagramming

我使用http://rails-erd.rubyforge.org/生成ERD - 输出是我项目对象模型的一个非常好的图表。还有一个rake任务来生成ERD generate_erd,我想在运行rake db:migrate后自动调用它。我该怎么做?

1 个答案:

答案 0 :(得分:1)

@MaxWilliams给出的链接是有帮助的,但我不认为这些答案中的任何一个都能达到你想要的效果。我找到了关于Rake Task Overwriting的this文章。它是从2008年开始的,但我尝试了这个并且它有效。

我创建了另一个.rake文件(用于组织),恰好打电话给我的migrate_and_generate_erb.rake但是无论你想要什么名字。

我刚才有这个:

namespace :db do
  task :migrate do
    Rake::Task["erd"].invoke
  end
end

基本上,根据文章,如果已经定义了代码实现,Rake只会继续附加代码实现。

现在正在运行rake db:migrate也让我产生了我的ERD。

小心:您还希望对db:rollback执行相同操作,以便回滚迁移也会更新您的ERD。

最后一点注意事项:考虑到只是别名(shell命令),以防万一您想要在不生成ERD的情况下运行迁移,或者使用环境变量以及新的Rake任务。