Найти в Дзене
Timeweb Cloud

Миграции и сидеры Laravel: настройка базы данных

Оглавление

Миграции и сидеры — это два инструмента в 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. Появится такое окно:

-2

Если версия ниже, чем 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 и установите:

-3

После установки вы сможете через меню поиска зайти в консоль выбранной вами ОС:

-4

Установка Docker

Заходим на сайт docker.com, нажимаем «Get Started» и загружаем Docker Desktop для Windows. В процессе установки необходимо нажать галочку «Use WSL 2 instead HYPER-V»:

-5

Настройка Docker

Открываем Docker, нажимаем на «шестеренку» на верхней панели и попадаем меню настроек:

-6

На вкладке General отображены основные настройки. Здесь мы можем выбрать необходимые пункты (например включить WSL2) и отключить ненужное (например отправку статистики). После выставления настроек на этой вкладке переходим к «Resources». Здесь необходимо включить интеграцию с Ubuntu:

-7

После этого нажимаем на кнопку “Apply & Restart”. Докер перезагрузится с новыми настройками.

Laravel

Создадим новое приложение Laravel. Заходим в терминал Ubuntu и вводим такую команду:

curl -s https://laravel.build/example-app | bash

example-app — каталог нового приложения Laravel. При первом выполнении команда не сможет найти необходимые образы и начнет их загрузку:

-8

После завершения загрузки Laravel Sail станет доступен. Переходим в каталог проекта:

cd example-app

И создаем контейнеры Laravel Sail:

./vendor/bin/sail up

Создание контейнеров может затянуться, но в следующие запуски Sail будут проходить быстро. Sail будет запускать веб-приложение с информационными ресурсами Laravel на localhost:

-9
-10

Как работать с миграциями и сидерами для упрощения настройки БД в среде разработки. Читайте далее — в полной версии статьи.