1 августа 2012 г. Автоматические миграции в Yii после git pull

Git Hooks in Yii

Уже довольно продолжительное время использую Git и Yii Framework. Разрабатываю проекты зачастую не самостоятельно, а в команде, поэтому приходиться использовать миграции (изменения в структуре базы данных). Заинтересовало, как можно автоматизировать автоматическое применение миграций.

В Git есть возможность использовать Git Hooks, которые позволяют выполнять какие-то дополнительные действия (скрипты) после или до определенной операции. Мне хотелось бы выполнять миграции Yii каждый раз когда я обновляю код из репозитория, когда существует вероятность изменения структуры базы данных моими коллегами.

То есть, каждый раз, когда я делаю git pull, должен выполниться скрипт, выполняющий применение новых миграций Yii. Для этого нужно создать файл .git/hooks/post-merge со следующим простым bash скриптом:

#!/bin/sh
cd /var/www/yiiproject/protected/
php yiic.php migrate --interactive=0

cd /var/www/yiiproject/protected/ - переходим в директорию с проектом

php yiic.php migrate --interactive=0 - выполняем миграции, с параметром --interactive=0, который позволяет автоматически выполнять миграции, не используя подтверждение от пользователя.

Теперь при каждом обновлении git pull, должен выполниться этот скрипт, который должен выполнить существующие миграции.

Разработка