396 Stimmen

Was bedeutet bundle exec rake?

Was bedeutet bundle exec rake db:migrate bedeuten? Oder nur bundle exec rake <command> im Allgemeinen?

Ich verstehe, dass bundle kümmert sich um die Pflege der Gemfile. Ich weiß, was das Wort "exec" bedeutet. Ich verstehe, dass rake unterhält all die verschiedenen Skripte, die man machen kann, und ich weiß, dass db:migrate ist eine davon. Ich weiß einfach nicht, was all diese Wörter zusammen machen. Warum sollte bundle zur Ausführung verwendet werden rake um eine Datenbankmigration durchzuführen?

1voto

Ajit Singh Punkte 2350

Wenn Sie den Rake-Task direkt ausführen oder eine Binärdatei eines Gems ausführen, gibt es keine Garantie, dass sich der Befehl wie erwartet verhält. Es kann nämlich vorkommen, dass Sie das gleiche Gem bereits auf Ihrem System installiert haben, das eine Version von z.B. 1.0 hat, aber in Ihrem Projekt eine höhere Version von z.B. 2.0. In diesem Fall können Sie nicht vorhersagen, welche Version verwendet werden wird.

Um die gewünschte Gem-Version zu erzwingen, nehmen Sie die Hilfe von bundle exec Befehl, der die Binärdatei im Kontext des aktuellen Bundles ausführen würde. Das bedeutet, dass Bundler bei der Verwendung von bundle exec die für das aktuelle Projekt konfigurierte gem-Version überprüft und diese zur Ausführung der Aufgabe verwendet.

Ich habe auch eine Beitrag darüber, die auch zeigt, wie wir die Verwendung von bin stubs vermeiden können.

0voto

Omar Qureshi Punkte 8743

Das bedeutet, dass Sie Rake, das Bundler kennt und Teil Ihres Gemfiles ist, über ein Rake stellen, das Bundler nicht kennt, und die Aufgabe db:migrate ausführen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X