Can someone explain me why Capistrano deploys rails code to both :web
roles, not only to :app role, which is the only role that actually needs
In my setup I do not want to give any SSH access to :db servers other
server management, which is done outside Capistrano. So why Capistrano
migrate task needs this access while it could to it from :app server,
has all the means via the database connection.
The problem raises when the same rails codebase is deployed to different
at different times which all have the same database servers (of course
different databases via render(“database.yml”) method).
There is no telling, which version of this code is on the :db server,
run migrate on one of these sites, so I can not be sure this migrate
what I expect it to do.
Whereas if migrate would run on :app, I would know exactly what I get
with multiple sites of the same code at different versions all on the
If someone can explain me this, I would appreciate it.