我是rails新手。我注意到當在rails 5中生成數據遷移時,有些人使用rails db:migrate
而不是rake db:migrate
。有人可以解釋數據庫遷移中rails和rake命令之間的區別嗎?這是否意味着rake命令在rails 5中已經過時了?rails db:migrate vs rake db:migrate
千恩萬謝
我是rails新手。我注意到當在rails 5中生成數據遷移時,有些人使用rails db:migrate
而不是rake db:migrate
。有人可以解釋數據庫遷移中rails和rake命令之間的區別嗎?這是否意味着rake命令在rails 5中已經過時了?rails db:migrate vs rake db:migrate
千恩萬謝
Rails的核心團隊決定要通過讓rails命令,以支持耙做的一切一致性。
例如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。在這種情況下,db:migrate本質上不受Rails支持,所以Rails通過Rake Proxy將執行委託給Rake。
如果您想查看Rails 5支持的所有命令,那麼您可以通過執行rails --help來獲得一長串選項。
很好的解釋。投票:) –