我注意到,在Rails 5中生成数据迁移时,有些人使用rails db:migrate而不是rake db:migrate。谁能解释一下数据库迁移中rails和rake命令的区别?这是否意味着rake命令在Rails 5中已经过时了?
rails db:migrate
rake db:migrate
rails
rake
csbfibhn1#
Rails核心团队决定通过启用rails命令来支持rake所做的一切来保持一致性。例如,在Rails 5中,像db:migrate、db:setup、db:test等命令。,它们是Rails 4中rake命令的一部分,现在由rails命令支持。但是,您仍然可以选择使用rake来运行这些命令,类似于在Rails4中运行它们的方式。这是因为Rails社区引入了Rake代理,而不是完全将命令选项从Rake移动到Rails。内部发生的是,当执行rails db:migrate命令时,Rails检查db:migrate是否是Rails本机支持的东西。在本例中,db:migrate不受Rails的原生支持,因此Rails通过Rake Proxy将执行委托给Rake。如果您想在Rails5中查看Rails支持的所有命令,那么可以通过执行rails --help.来获得一长串选项
db:migrate
db:setup
db:test
rails --help.
1条答案
按热度按时间csbfibhn1#
Rails核心团队决定通过启用rails命令来支持rake所做的一切来保持一致性。
例如,在Rails 5中,像
db:migrate
、db:setup
、db:test
等命令。,它们是Rails 4中rake命令的一部分,现在由rails命令支持。但是,您仍然可以选择使用rake来运行这些命令,类似于在Rails4中运行它们的方式。这是因为Rails社区引入了Rake代理,而不是完全将命令选项从Rake移动到Rails。内部发生的是,当执行
rails db:migrate
命令时,Rails检查db:migrate
是否是Rails本机支持的东西。在本例中,db:migrate
不受Rails的原生支持,因此Rails通过Rake Proxy将执行委托给Rake。如果您想在Rails5中查看Rails支持的所有命令,那么可以通过执行
rails --help.
来获得一长串选项