@StalkerClasses, модель не имеет никакого отношения к базе данных. Модель - это от слова "моделировать". Модель самолета, модель пользователя, модель товара.
Этот момент нужно четко понимать. Модель - это просто код, который моделирует некоторую сущность. База данных тут никаким местом.
class User { ... } // модель пользователя, видишь, ни от чего не наследуется, можешь себе представить внутри обычный php-код безо всяких фреймворков
$user = new User(1, '
[email protected]'); // экземпляр модели пользователя
А вот когда мы задумываемся о том, как сохранить этого $user в базу данных - вот тут база данных и появляется. Но это не сама модель. Это задача сохранения ее состояния на диск, отдельная. Задумались - появляется задача маппинга - как сопоставить свойства классов и поля в таблицах. Сделать это можно по-разному. Тут есть паттерны, самые известные - ActiveRecord (который добавляет реализацию маппинга прямо в модель) и DataMapper (маппинг находится снаружи, а модели остаются обычными php-классами).
Базы данных вообще может не быть. Можно написать сериализацию в файлы или какое-нибудь key-value хранилище. Модель никуда при этом не денется.
В текущей версии кода у тебя всегда последняя версия модели. Поменял код модели так, что надо изменить структуру таблиц и маппинг для их хранения - меняешь маппинг и добавляешь миграцию. Технически можно было бы обойтись вообще без миграций, хранить только текущую версию структуры таблиц, и написать хитрый код, который приводит состояние базы данных к заданной, но это довольно сложная задача, попытки так сделать раньше были, но надежно это сделать еще ни у кого не получалось, так что остановились на миграциях.
Так что твой вопрос - бессмысленный.
Вообще у меня дежавю, я тебе вроде это все писал уже в том или ином виде.