2016-07-15 12 views
30

Ich bin neu bei Schienen. Ich habe bemerkt, wenn die Datenmigration in den Schienen 5 erzeugt wird, verwenden einige Leute rails db:migrate über rake db:migrate. Kann jemand den Unterschied zwischen dem Befehl "rails vs. rake" bei der Datenbankmigration erklären? Bedeutet das, dass der Rake-Befehl in den Schienen 5 veraltet ist?rails db: migrieren vs rake db: migrieren

vielen Dank

Antwort

61

Rails-Kernteam entschieden Konsistenz haben, indem ermöglicht Schienen befehlen, alles zu unterstützen, das tut Rake.

Zum Beispiel in Rails 5 Befehle wie db: migrate, setup, test usw., die Teil des Rake Befehls in Rails 4 sind, werden nun vom rails Befehl unterstützt. Sie können jedoch immer noch Rake verwenden, um diese Befehle ähnlich wie in Rails 4 auszuführen. Dies liegt daran, dass die Rails-Community Rake Proxy eingeführt hat, anstatt die Befehlsoptionen vollständig von Rake auf Rails zu verschieben.

Was intern passiert, ist, dass wenn rails db: migrate-Befehl ausgeführt wird, Rails prüft, ob db: migrate etwas ist, das rails nativ unterstützt oder nicht. In diesem Fall wird db: migrate nicht nativ von Rails unterstützt, sodass Rails die Ausführung über Rake Proxy an Rake delegiert.

Wenn Sie alle Befehle anzeigen möchten, die von Rails in Rails 5 unterstützt werden, können Sie eine lange Liste von Optionen erhalten, indem Sie rails --help ausführen.

+0

nette Erklärung. Stimme ab :) –