Rails db:migrate与rake db:migrate


78

我是新手。我注意到在Rails 5中生成数据迁移时,有些人用rails db:migrate了over rake db:migrate。有人可以解释一下Rails vs rake命令在数据库迁移中的区别吗?这是否意味着在rails 5中过时的rake命令?

非常感谢

Answers:


158

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

例如,在导轨5级的命令喜欢db:migratedb:setupdb:test等,这是在滑轨rake命令的部分4由导轨命令现在被支撑。但是,您仍然可以选择使用rake运行这些命令,类似于在Rails 4中运行这些命令。这是因为Rails社区引入了Rake Proxy,而不是完全将命令选项从rake移到rails。

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

如果要查看Rails 5中rails支持的所有命令,则可以通过执行以下命令获得一长串选项 rails --help.


知道是否有办法在Rails 4项目中使用新语法吗?
格雷格·布拉斯

@GregBlass您可以将导轨5的模块包含到导轨4中以使用它。但我不认为您可以使用rails 5语法。
维沙尔'18

4
Rails 6弃用了rake命令;至少其中一些;rake dev:cacherake notesrake routes。它们将在Rails 6.1
Frederik Spang
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.