web-dev-qa-db-fra.com

rails db: migrate vs rake db: migrate

Je suis nouveau sur Rails. J'ai remarqué lors de la génération de la migration de données dans Rails 5, certaines personnes utilisent Rails db:migrate plus de rake db:migrate. Quelqu'un peut-il expliquer la différence entre Rails et la commande rake dans la migration de base de données? Est-ce que cela signifie que la commande rake est obsolète dans Rails 5?

merci beaucoup

65
York Wang

L'équipe centrale de Rails a décidé d'assurer la cohérence en activant la commande Rails pour prendre en charge tout ce que rake permet.

Par exemple, dans Rails 5, les commandes telles que db: migrate, setup, test, etc., qui font partie de la commande rake dans Rails 4, sont désormais prises en charge par la commande Rails. Cependant, vous pouvez toujours choisir d'utiliser rake pour exécuter ces commandes de la même manière que celles utilisées dans Rails 4. Cela est dû au fait que la communauté Rails a introduit le proxy Rake au lieu de déplacer complètement les options de commande. de rake à Rails.

Ce qui se passe en interne, c'est que lorsque la commande Rails db: migrate est exécutée, Rails vérifie si db: migrate est quelque chose que Rails supporte nativement ou non. Dans ce cas, db: migrate n'est pas pris en charge de manière native par Rails, donc Rails délègue l'exécution à Rake via Rake Proxy.

Si vous voulez voir toutes les commandes prises en charge par Rails dans Rails 5, vous pouvez obtenir une longue liste d'options en exécutant Rails --help.

140
Vishal