Вы правы в своем предположении.Роль :db
используется только для того, где она будет выполнять задачу rake для запуска миграций.Поэтому, если у вас есть:
role :db, "ourmachine.com", :primary => true
, он выполнит команду rake RAILS_ENV=production db:migrate
только на основном компьютере.Он использует database.yml для определения местоположения сервера во время задачи переноса.Во многих случаях :db
совпадает с :app
, так как он может выполнять миграции.