Сервер БД выполняет миграцию, поскольку он является «ответственным» за базы данных.
Можно также представить политики безопасности, которые позволяют создавать / удалять / изменять таблицы только с самого сервера базы данных.
Возможно даже небольшое повышение производительности, если во время миграции загружаются данные, хотя с самого начала это ужасная идея.
Если вам нужно сослаться на хост вашей базы данных и вам не нужна копия кода на нем, вы можете использовать что-то вроде этого:
role :db, 'dbhost', :no_release => true
Пример кода для запуска миграций на сервере приложений:
role :app, 'apphost', :runs_migrations => true
task :migrate, :roles = :app, :only => {:runs_migrations => true } do
#...
end