Система обновления БД. Надо бы что-то подобное было давно сделать, а то, похоже, какой-то адский ад творится с этим делом :)

Работает так: в папку protected/data/dbupdates складываете скрипты с последовательными номерами типа 000001.php, 000002.php, и так далее. Можно добавлять в конце суффиксы из букв, чтоб были скрипты с одним номером, но в разных ветках. Например, 000003ivan.php или 000120freeze.php. Скрипт site/dbupdate находит все эти файлы, сравнивает с текущей версией и прогоняет по порядку все скрипты, которые, по его мнению, ещё не выполнены.

Текущая версия базы хранится с помощью statePersister (Yii::setGlobalState, Yii::getGlobalState), физически размещается в protected/runtime/state.bin. Надеюсь, это нормально.