rails db: migrate vs rake db: migrate


79

Я новачок у рейках. Я помітив, що під час генерації міграції даних у рейках 5 деякі люди використовують rails db:migrateнад rake db:migrate. Хтось може пояснити різницю між командою rails та rake у міграції бази даних? Чи означає це, що команда rake застаріла у рейках 5?

дуже дякую

Відповіді:


160

Основна команда Rails вирішила бути послідовною, дозволивши команді rails підтримувати все, що робить рейк.

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

Що відбувається внутрішньо, так це те, що при виконанні rails db:migrateкоманди Rails перевіряє, чи db:migrateпідтримує Rails власну підтримку чи ні. В цьому випадкуdb:migrate рейки не підтримують спочатку, тому Rails делегує виконання Rake через Rake Proxy.

Якщо ви хочете побачити всі команди, які підтримуються рейками в Rails 5, тоді ви можете отримати довгий список опцій, виконавши rails --help.


Будь-яка ідея, чи є спосіб використовувати новий синтаксис у проекті Rails 4?
Грег Бласс

@GregBlass Ви можете включити модуль рейок 5 у рейки 4, щоб використовувати його. але я не думаю, що ви можете використовувати синтаксис rails 5.
Vishal

4
Rails 6 знецінює команди rake; Принаймні деякі з них; rake dev:cache, rake notesі rake routes. Вони будуть видалені в Rails 6.1
Фредерік Шпанг,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.