Миграции и сидеры — это два инструмента в PHP-фреймворке Laravel, которые упрощают работу с БД и решают проблемы, связанные с несогласованностью.
В Laravel миграции — это набор функций, схожий с контролем версии БД. Миграции позволяют команде разработчиков определять общую схему БД и совместно использовать её. Благодаря этому инструменту все участники команды разработчиков в курсе изменений.
Сидеры в Laravel — это инструмент для наполнения базы данных тестовыми данными. Есть несколько классов наполнителей, которые позволяют контролировать процесс наполнения.
Прочитав эту статью, вы узнаете как начать работу в Laravel и создавать миграции и сидеры.
Установка и настройка Laravel
В этом обучающем материале мы будем использовать Docker для запуска приложения Laravel. Специально для Docker есть интерфейс командной строки Laravel Sail. Он по умолчанию встроен в пакет Laravel.
Устанавливать всё ПО будем на Windows 10. В этом мануале мы собрали полноценную инструкцию действий из различных материалов Microsoft, Docker и Laravel. Сначала мы установим WSL, затем Docker и уже Laravel. Ниже будет описаны действия конкретно для Windows 10, инструкцию для остальных операционных систем вы найдете в документации Laravel.
Установка WSL
WSL(Windows Subsystem for Linux) — это программная прослойка для запуска Linux-приложений на Windows.
Если у вас версия Windows 10 2004 и выше, то для установки достаточно выполнить эту команду в PowerShell от имени администратора:
wsl --install
По умолчанию используется дистрибутив Ubuntu. Нам нужна WSL 2, поэтому дополнительно изменим версию. Процесс займет несколько минут:
wsl --set-version Ubuntu 2
Для проверки версии используем команду wsl.exe -l -v:
PS C:\WINDOWS\system32> wsl.exe -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
Чтобы проверить версию Windows, нажмите Win+R и введите команду winver. Появится такое окно:
Если версия ниже, чем 2004, то команда wsl --install не сможет установить WSL. Вот список действий для старых версий (как минимум нужна версия 1903 со сборкой 18362):
Включаем подсистему Windows для Linux
Открываем PowerShell от имени администратора и выполняем эту команду:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Включаем функцию виртуальной машины
В ранее открытом терминале PowerShell выполняем такую команду:
dism.exe /online /enable-feature /featurename: VirtualMachinePlatform /all /norestart
Перезагружаем компьютер
Для завершения установки.
Загружаем и устанавливаем пакет обновления ядра Linux
После перехода по этой ссылке начнется загрузка пакета обновления. Установите его.
Выбираем WSL 2 в качестве версии по умолчанию
После перезагрузки снова открываем PowerShell от имени администратора и выполняем эту команду:
wsl --set-default-version 2
Устанавливаем дистрибутив Linux
Выберите необходимый дистрибутив, загрузите его из Microsoft Store и установите:
После установки вы сможете через меню поиска зайти в консоль выбранной вами ОС:
Установка Docker
Заходим на сайт docker.com, нажимаем «Get Started» и загружаем Docker Desktop для Windows. В процессе установки необходимо нажать галочку «Use WSL 2 instead HYPER-V»:
Настройка Docker
Открываем Docker, нажимаем на «шестеренку» на верхней панели и попадаем меню настроек:
На вкладке General отображены основные настройки. Здесь мы можем выбрать необходимые пункты (например включить WSL2) и отключить ненужное (например отправку статистики). После выставления настроек на этой вкладке переходим к «Resources». Здесь необходимо включить интеграцию с Ubuntu:
После этого нажимаем на кнопку “Apply & Restart”. Докер перезагрузится с новыми настройками.
Laravel
Создадим новое приложение Laravel. Заходим в терминал Ubuntu и вводим такую команду:
curl -s https://laravel.build/example-app | bash
example-app — каталог нового приложения Laravel. При первом выполнении команда не сможет найти необходимые образы и начнет их загрузку:
После завершения загрузки Laravel Sail станет доступен. Переходим в каталог проекта:
cd example-app
И создаем контейнеры Laravel Sail:
./vendor/bin/sail up
Создание контейнеров может затянуться, но в следующие запуски Sail будут проходить быстро. Sail будет запускать веб-приложение с информационными ресурсами Laravel на localhost:
Как работать с миграциями и сидерами для упрощения настройки БД в среде разработки. Читайте далее — в полной версии статьи.