我是rails新手.我注意到,在rails 5中生成数据迁移时,有些人使用rails db:migrate
比rake db:migrate
.有人能解释一下rails和rake命令在数据库迁移中的区别吗?这是否意味着rake命令在rails 5中已经过时?
非常感谢
我是rails新手.我注意到,在rails 5中生成数据迁移时,有些人使用rails db:migrate
比rake db:migrate
.有人能解释一下rails和rake命令在数据库迁移中的区别吗?这是否意味着rake命令在rails 5中已经过时?
非常感谢
Rails核心团队决定通过使Rails命令支持rake所做的一切来保持一致性.
例如,在Rails 5中,Rails命令现在支持作为Rails 4中rake命令一部分的命令,如db:migrate
、db:setup
、db:test
等.不过,您仍然可以 Select 使用rake来运行这些命令,类似于Rails 4中的运行方式.这是因为Rails社区引入了Rake代理,而不是将命令选项从Rake完全移动到Rails.
内部情况是,当执行rails db:migrate
命令时,Rails会判断db:migrate
是否是Rails本机支持的.在本例中,db:migrate
本机不受rails支持,因此rails通过Rake代理将执行委托给Rake.
如果您想查看rails 5中rails支持的所有命令,那么可以通过执行rails --help.