# Структура файлов миграций в Laravel

Общая схема работы с миграциями будет следующей. Пусть вы хотите что-то изменить в структуре базы данных. Для этого вы командой artisan создаете файл с миграцией, затем в этом файле прописываете изменения в структуре базы данных, а затем выполняете еще одну команду artisan, которая применит описанные вами изменения.

Файлы миграций располагаются в папке `database/migrations`. Имя каждого файла состоит из названия миграции и метки времени, которая позволяет фреймворку определять порядок применения миграций.

Файлы миграций создаются с помощью artisan команды `make:migration`, после которой указывается имя миграции.

В результате будет создан класс с миграцией, в котором будут методы `up` и `down`:

`<?php class ИмяМиграции extends Migration { public function up() { } public function down() { } } ?>`

В методе `up` мы должны прописать команды, которые осуществляют миграцию, а в методе `down` команды, которые позволят откатить эту миграцию назад.

Имя миграции должно соответствовать сути изменения. В этом случае Laravel сгенерирует дополнительный код, осуществляющий миграцию и ее откат.

Посмотрим на практике. Давайте создадим миграцию, которая будет создавать таблицу `posts`. Для этого в качестве имени миграции выберем `create_posts_table`.

Теперь выполнем в терминале следующую команду:

`php artisan make:migration create_posts_table`

В результате Laravel создаст файл с классом миграции. При этом он поймет из названия, что мы хотим создать новую таблицу и сгенерирует доплнительный код для создания и отката этой миграции.

Структура созданного файла будет выглядеть следующим образом:

`<?php class CreatePostsTable extends Migration { public function up() { Schema::create('posts', function (Blueprint $table) { // тут будут команды миграции }); } public function down() { Schema::dropIfExists('posts'); } } ?>`

В папке с миграциями изначально уже есть некоторые миграции. Нам они пока не нужны. Уберите их из этой папки.

С помощью команды artisan сделайте миграцию, создающую таблицу `users`. Изучите код сгенерированного файла.

←→
↑