我注意到在 Rails 5 中生成数据迁移时,有些人使用rails db:migrate
over rake db:migrate
。有人可以解释一下两者之间的区别吗rails
和rake
数据库迁移命令?这是否意味着rake
命令在 Rails 5 中已过时?
Rails 核心团队决定通过启用 Rails 命令来支持 rake 所做的一切来保持一致性。
例如,在 Rails 5 中,类似的命令db:migrate
, db:setup
, db:test
等,它们是 Rails 4 中 rake 命令的一部分,现在由rails 命令支持。但是,您仍然可以选择使用 rake 来运行这些命令,就像它们在 Rails 4 中的运行方式一样。这是因为 Rails 社区引入了 Rake Proxy,而不是完全将命令选项从 Rake 转移到 Rails。
内部发生的事情是当rails db:migrate
命令执行后,Rails 检查是否db:migrate
是 Rails 本身支持或不支持的东西。在这种情况下,db:migrate
Rails 本身并不支持,因此 Rails 通过 Rake Proxy 将执行委托给 Rake。
如果你想查看Rails 5中Rails支持的所有命令,那么你可以通过执行获得一长串选项rails --help.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)