В мире веб-разработки работа с базами данных — одна из ключевых тем. В современном фреймворке Laravel для этого используются миграции: они позволяют описывать структуру таблиц в коде и контролировать изменения базы данных пошагово.
В этом уроке из курса по Laravel на канале Быть Программистом я, Александр Сокирка, подробно разбираю работу с миграциями, подключение баз данных SQLite и MySQL, а также объясняю, как создавать связи «один к одному», «один ко многим» и «многие ко многим».
Ниже вы можете посмотреть полный видеоурок, а далее в статье — краткий конспект и пояснения.
Что такое миграции в Laravel?
Миграции — это инструмент, который позволяет:
- Создавать и изменять таблицы базы данных с помощью PHP-кода.
- Версионировать изменения и легко откатывать их назад.
- Работать в команде без конфликтов: все члены команды применяют одинаковые миграции.
Пример создания таблицы пользователей через миграцию:
public function up(): void
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
}
Подключение баз данных: SQLite и MySQL
В уроке я показал два подхода:
- SQLite
- Удобна для разработки и тестов.
- Достаточно создать файл
database/database.sqlite
и прописать настройки в.env
.
- MySQL (через phpMyAdmin)
- Подходит для реальных проектов.
- В
.env
указываем драйвер, имя базы, пользователя и пароль.
Пример .env
для MySQL:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_app
DB_USERNAME=root
DB_PASSWORD=
Основные команды Artisan для миграций
Laravel предоставляет удобные команды для управления миграциями:
php artisan migrate
— применить все миграции.php artisan migrate:fresh
— удалить все таблицы и применить миграции заново.php artisan migrate:rollback
— откатить последние изменения.php artisan make:migration create_posts_table
— создать новую миграцию.
Создание связей между таблицами
Один ко многим
Пример: у пользователя может быть несколько постов.
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->foreignId('user_id')->constrained()->onDelete('cascade');
$table->timestamps();
});
Многие ко многим
Пример: пользователи и роли.
Schema::create('role_user', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained()->onDelete('cascade');
$table->foreignId('role_id')->constrained()->onDelete('cascade');
});
Зачем использовать миграции?
- Контроль версий БД — всегда можно откатиться на нужный шаг.
- Согласованность в команде — все разработчики работают с одинаковой структурой.
- Автоматизация — структура базы фиксируется в коде, без ручного вмешательства через GUI.
- Удобство деплоя — при выкатывании проекта на сервер миграции применяются одной командой.
Заключение
Миграции — это сердце работы с базами данных в Laravel. Если вы начинающий разработчик, понимание этой темы поможет вам уверенно строить архитектуру проекта и работать с командами профессионально.