rails db:migrate vs rake db:migrate

Yor*_*ang 69 rake ruby-on-rails ruby-on-rails-5

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

非常感谢

Vis*_*hal 145

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获得一长串选项.

  • Rails 6弃用了rake命令;至少其中一些;“ rake dev:cache”,“ rake notes”和“ rake route”。它们将在Rails 6.1中删除 (3认同)