rails db: migrate vs rake db: migrate

Я новичок в рельсах. Я заметил, что при генерации миграции данных в рельсах 5 некоторые люди используют rails db:migrate over rake db:migrate. Может ли кто-нибудь объяснить разницу между командой rails vs rake в миграции базы данных? Означает ли это, что команда rake устарела в рельсах 5?

большое спасибо

Ответ 1

Основная команда Rails решила добиться согласованности, включив команду rails для поддержки всего, что делает rake.

Например, в Rails 5 такие команды, как db: migrate, setup, test и т.д., Которые являются частью команды rake в Rails 4, теперь поддерживаются командой rails. Однако вы все равно можете использовать rake для запуска этих команд, аналогично тому, как они запускались в Rails 4. Это связано с тем, что сообщество Rails ввело Rake Proxy вместо того, чтобы полностью перемещать параметры команды из rake в rails.

Внутренне происходит то, что при выполнении команды rails db: migrate Rails проверяет, является ли db: migrate тем, что rails изначально поддерживает или нет. В этом случае db: migrate изначально не поддерживается rails, поэтому Rails делегирует выполнение Rake через Rake Proxy.

Если вы хотите увидеть все команды, которые поддерживаются rails в Rails 5, вы можете получить длинный список опций, выполнив rails --help.