$ bundle exec rake db: migrate
Rake görevini yürütmek için Gemfile'da belirtilen komisyon sürümünü kullanır db:migrate
.
Ancak Gemfile'da tırmık mücevheri belirtilmemiş!
Evet, ancak Gemfile.lock'a başka bir cevherin bağımlılığı olarak bir komisyon taşı kuruldu. Yani kural şöyle olmalıdır: Gemfile.lock'ta belirtilen rake sürümünü kullanır.
Ancak Gemfile.lock belirli bir sürümü belirtmez - xy'den büyük bir sürümü belirtir!
O zaman kural şu olmalıdır: Mevcut mücevher setinde kurulu olan tırmık versiyonunu kullanır.
$ rake db: migrate
Normalde, komut satırında bir komut verdiğinizde, örneğin rake, sisteminiz komutu PATH ortam değişkeninizde belirtilen dizinler listesinde arar. Komutu içeren ilk dizin, kullanılan komutun sürümüdür. Bunun hangi dizini olduğunu görmek için şunları yapabilirsiniz:
$ which rake
Yani eğer yürütürseniz,
$ rake db:migrate
bu , yüklediğinizden farklı bir tırmık taşı kullanabilir bundle install
. Ancak, sisteminiz ile aynı tırmık sürümünü bundle exec
bulsa bile, komisyon kaynak kodunun gerektirdiği tüm taşlar, projenizin mücevher setinin dışındaki yerlerde aranacaktır. Bu nedenle, şunları yapmanın birçok yolu vardır:
$ rake db:migrate
işleri alt üst edebilir.
Ruby on Rails Eğitim Kitabı'na göre (ücretsiz çevrimiçi) bölüm 3.6, rvm 1.11.x + kullanıyorsanız komutların önsözünü yapmanıza gerek yoktur bundle exec
.