наиболее правильный вариант - Phing + Ansible/Chiff/Puppets. Собираете билд с уже прогретым кешем, и деплоитесь. На сервере уже накатываете миграцию и переводите симлинк webroot-а на новую версию (или как у вас реализовано будет, можно через симлинки, можно использовать штуки типа Docker).
Ну а если у вас деплой через git то да, на хуки. Только не pre а наверное post-receive, если у вас деплой идет как git push prod master или что-то в этом духе.