Ответ 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.