Laravel по-русски

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

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

#1 23.12.2014 15:57:16

Armix2000

Миграция - что такое?

Миграция - что такое? Для чего нужна не пойму!?
Обясните попроще!

#2 24.12.2014 12:43:24

Re: Миграция - что такое?

Возможность не создавать/удалять/изменять таблицы/поля/индексы в phpMyAdmin вручную, а один раз записать в коде и затем применять их или откатывать одной консольной командой. Если работаешь в команде, то соответственно не нужно описывать изменения для каждого члена команды, достаточно создать миграцию и каждый сам её применит, а результат будет предсказуем.

Не в сети

#3 24.12.2014 23:05:37

armix2000

Re: Миграция - что такое?

Спасибо, немного понятно, хотя я не совсем понимаю что значит откатывать?!
Как откатить, что если один создаст такой файл миграции и применит и я чтото изменю и потом запущу новый миграцию, то тот второй что может откатить? Таблицу ее свойства как были? Или что?
Не пойму на практике как это помогает?!

#4 28.12.2014 14:19:46

Re: Миграция - что такое?

Миграции не изменяются после создания, а БД — не изменяется никак в обход миграции. Соответственно, чтобы вам что-то применить, нужно сначала применить все миграции, которые есть у вашей команды, а потом уже написать свою новую миграцию и применить ее. Чтобы откатить — откатываете всё до той миграции, которой нужно, а потом делаете свою и применяете её.

  1. Не пойму на практике как это помогает?!

Если у вас в команде один человек — вы — то можете об этом не думать. Проще понять в действии, когда будет несколько человек.

Не в сети

#5 10.01.2015 03:19:09

Re: Миграция - что такое?

Ok Google! С миграцией вроде все ясно, но как быть если в базе есть данные и хочешь добавить поле? Migrate:refresh добавляет поле, но удаляет записи.

Курю мануал, нравится новый сайт wink

Не в сети

#6 10.01.2015 03:34:06

BaldaI
Откуда: Хабаровск
Сообщений: 16

Re: Миграция - что такое?

Просто добавьте в новой миграции поле:

	public function up()
	{
		Schema::table('users', function($table)
		{
		    $table->string('email');
		});
	}

http://laravel.com/docs/4.2/schema#adding-columns

И примените миграцию: artisan migrate

Не в сети

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