Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 07.11.2013 11:21:56

[L4] Миграции

Друзья, до этого никогда не был знаком с миграциями!
Будьте добры, могли бы объяснить более доступном словами, что такое миграции, для чего они нужны и какие у них плюсы и минусы
Со статьями Миграции и  Конструктор таблиц
ознакомлен, но многое не понятное

Заранее спасибо

Изменено CBETOBuT (07.11.2013 11:22:19)

Не в сети

#2 07.11.2013 12:27:05

Re: [L4] Миграции

Представь, что у тебя в команде есть ещё один человек. У вас уже есть сложившаяся структура БД (таблицы и данные). Но вот тебе нужно добавить в таблицу поле, например, если это интернет-магазин, то к заказам нужно поле «телефон». У себя ты это сделал. Теперь чтобы твой напарник узнал об этом нужно ему писать отдельно, высылать SQL и объяснять, что случилось. А если кроме добавления поля нужно сделать какие-то иные действия? Например, раньше поле могло содержать набор данных, а затем решили его разделить на несколько отдельных полей. Тогда кроме просто удаления и добавления поля скрипт должен пройти по существующим строкам таблицы и разделить старое поле на новые. Как это сделать? Опять же, писать напарнику, скидывать SQL, скидывать скрипт, объяснять, что в каком порядке выполняется.

С миграциями проще. У тебя есть скрипт, который как раз и делает описанное выше: обновляет структуру БД, данные, плюс ко всему есть возможность эти миграции отслеживать автоматически, т.е. Laravel записывает в отдельную таблицу в БД, какие миграции были уже выполнены, а какие нет, и ты можешь в любой момент откатить изменения миграций на нужную дату. А затем их применить снова.

Таким образом, если ты работаешь в команде, то в дополнение к обновлению кода из хранилища (git, SVN и пр.) после обновления выполняется команда применения новых миграций, если они есть, и всё — никто не пишет остальным участникам, что изменилось и что нужно сделать, чтобы эти изменения появились и у тебя в системе.

Не в сети

Подвал раздела