Автоматические миграции в Yii после git pull
1 августа 2012 г.
•
2 минуты чтения
Уже довольно продолжительное время использую 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, должен выполниться этот скрипт, который должен выполнить существующие миграции.