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

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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.