Schienen db: migrieren vs Rechen db: migrieren

78

Ich bin neu in Schienen. Ich habe bemerkt , wenn in Schienen 5 Datenmigration zu erzeugen, verwenden einige Leute rails db:migrateüber rake db:migrate. Kann jemand den Unterschied zwischen dem Befehl Rails und Rake bei der Datenbankmigration erklären? Bedeutet dies, dass der Rechenbefehl in Schienen 5 veraltet ist?

Danke vielmals

York Wang
quelle

Antworten:

158

Das Rails-Kernteam entschied sich für Konsistenz, indem es den Rails-Befehl aktivierte, um alles zu unterstützen, was Rake tut.

Beispielsweise in Schienen 5 Befehle wie db:migrate, db:setup, db:testusw. , die in Schienen Teil des Rake - Befehl sind 4 werden nun unterstützt wird durch Schienen befehlen. Sie können jedoch weiterhin 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.

Intern geschieht, dass rails db:migrateRails bei der Ausführung des Befehls prüft, ob db:migrateRails von Haus aus unterstützt wird oder nicht. In diesem Fall db:migratewird Rails nicht nativ unterstützt, daher delegiert Rails die Ausführung über Rake Proxy an Rake.

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

Vishal
quelle
Haben Sie eine Idee, ob es eine Möglichkeit gibt, die neue Syntax in einem Rails 4-Projekt zu verwenden?
Greg Blass
@ GregBlass Sie können ein Modul der Schienen 5 in die Schienen 4 einbinden, um es zu verwenden. Aber ich glaube nicht, dass Sie die Rails 5-Syntax verwenden können.
Vishal
4
Schienen 6 veraltet die Rechenbefehle; Zumindest einige von ihnen; rake dev:cache, rake notesUnd rake routes. Sie werden in Rails 6.1
Frederik Spang