Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rake db:migrate之后重新生成ERD_Ruby On Rails_Ruby_Rails Migrations_Erd_Diagramming - Fatal编程技术网

Ruby on rails 在rake db:migrate之后重新生成ERD

Ruby on rails 在rake db:migrate之后重新生成ERD,ruby-on-rails,ruby,rails-migrations,erd,diagramming,Ruby On Rails,Ruby,Rails Migrations,Erd,Diagramming,我正在使用生成一个ERD-输出是我的项目对象模型的一个非常好的图表。还有一个rake任务用于生成ERD,generate\u ERD,我希望在运行rake db:migrate后自动调用该任务。我该怎么做?由@MaxWilliams提供的链接很有帮助,但我认为这些答案中的任何一个都不是你想要的。我发现了一篇关于Rake任务覆盖的文章。这是从2008年开始的,但我试过了,效果很好 我创建了另一个.rake文件(用于组织),并碰巧调用了我的migrate\u和\u generate\u erb.ra

我正在使用生成一个ERD-输出是我的项目对象模型的一个非常好的图表。还有一个rake任务用于生成ERD,
generate\u ERD
,我希望在运行
rake db:migrate
后自动调用该任务。我该怎么做?

由@MaxWilliams提供的链接很有帮助,但我认为这些答案中的任何一个都不是你想要的。我发现了一篇关于Rake任务覆盖的文章。这是从2008年开始的,但我试过了,效果很好

我创建了另一个.rake文件(用于组织),并碰巧调用了我的
migrate\u和\u generate\u erb.rake
,但可以随意命名

在里面我刚刚有了这个:

namespace :db do
  task :migrate do
    Rake::Task["erd"].invoke
  end
end
基本上,根据这篇文章,如果任务已经定义,Rake只会不断地将代码实现附加到任务中

现在运行
rakedb:migrate
也生成了我的ERD

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

最后一个注意事项:考虑也只是混淆这个(shell命令),以防万一你想在不生成EDD的情况下运行迁移,或者使用环境变量以及新的RAKE任务。