Ruby on rails 在rake db:migrate之后重新生成ERD
我正在使用生成一个ERD-输出是我的项目对象模型的一个非常好的图表。还有一个rake任务用于生成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
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任务。