rails db:migrate vs rake db:migrate

问题描述 投票:63回答:1

我是铁杆新手。我注意到在rails 5中生成数据迁移时,有些人使用rails db:migrate而不是rake db:migrate。有人可以解释数据库迁移中rails vs rake命令之间的区别吗?是否意味着rake命令在rails 5中已经过时了?

非常感谢

ruby-on-rails ruby-on-rails-5 rake
1个回答
127
投票

Rails核心团队决定通过启用rails命令来支持rake所做的一切。

例如,在Rails 5中命令如db:migrate,setup,test等,它们是Rails 4中rake命令的一部分,现在由rails命令支持。但是你仍然可以选择使用rake来运行那些类似于在Rails 4中运行它们的命令。这是因为Rails社区引入了Rake Proxy而不是完全将命令选项从rake移动到rails。

内部发生的事情是当执行rails db:migrate命令时,Rails会检查db:migrate是否是rails本身支持的东西。在这种情况下,rails本身不支持db:migrate,因此Rails通过Rake Proxy将执行委托给Rake。

如果你想在Rails 5中看到rails支持的所有命令,那么你可以通过执行rails --help获得一长串选项。

© www.soinside.com 2019 - 2024. All rights reserved.