Builder

Миграции данных - это процесс изменения структуры БД без потери данных. Обычно миграции БД используются при разработке программного обеспечения, когда необходимо изменять таблицы или добавлять новые поля в уже существующие таблицы.
Когда разработчики вносят изменения в схему базы данных, например, добавляют новые таблицы, изменяют существующие или удаляют их, необходимо чтобы эти изменения применились на всех экземплярах БД. Миграции дают возможность автоматизировать этот процесс, сделав его более надежным и быстрым.
Для вызова класса миграции необходимо в конструктор передать нужную нам модель
$migration = new Migration(new Test());

Создание таблицы

Пример создания файла test.csv с пятью полями
$migration->createTable(function (Migration $table) {
    $table->create('id');
    $table->create('title');
    $table->create('text');
    $table->create('user_id');
    $table->create('created_at');
});

Удаление таблицы

$migration->deleteTable();

Создание колонок

$migration->changeTable(function (Migration $table) {
    // Создаст колонку text c текстом по умолчанию "Текст" после колонки title
    $table->create('text')->default('Текст')->after('title');

    // Создаст колонку test перед колонкой id
    $table->create('test')->before('id');
});

Переименовывание колонок

$migration->changeTable(function (Migration $table) {
    // Переименует user_id в author_id
    $table->rename('user_id', 'author_id');
});

Удаление колонок

$migration->changeTable(function (Migration $table) {
    // Удалит колонку title
    $table->delete('title');
});

Проверка существования таблицы

// Проверит существование таблицы
$migration->hasTable();

Проверит существование колонки

// Проверит существование колонки
$migration->hasColumn('field');

Выполнение миграций

Данная команда просканирует директорию /database/migrations, найдет все классы в этой директории и вызовет у каждого класса метод up()
php motor migrate

Откат миграций

Команда откатывает выполненные раннее миграции
php motor migrate:rollback
Миграции позволяют поддерживать состояние файловых таблиц в актуальном виде