Полное руководство по миграции Laravel: методы и примеры кода

Миграции Laravel — важный аспект управления изменениями схемы базы данных в приложении Laravel. Они предоставляют удобный способ изменить структуру базы данных с помощью кода PHP вместо непосредственного написания SQL-запросов. В этой статье мы рассмотрим различные методы, доступные в миграции Laravel, с примерами кода, которые позволят вам эффективно управлять схемой базы данных и управлять ее версиями.

  1. Создание миграции.
    Чтобы создать новую миграцию, вы можете использовать команду make:migrationArtisan. Вот пример:
php artisan make:migration create_users_table

Эта команда создает новый файл миграции в каталоге database/migrations, который вы можете изменить, чтобы определить изменения базы данных.

  1. Указание структуры таблицы:
    Вы можете использовать построитель схем Laravel, чтобы определить структуру таблицы в ходе миграции. Вот пример создания таблицы usersсо столбцами id, nameи email:
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamps();
    });
}
  1. Изменение существующих таблиц.
    Миграции Laravel позволяют изменять существующие таблицы. Вот пример добавления нового столбца в таблицу users:
public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('phone')->nullable();
    });
}
  1. Удаление таблиц.
    Чтобы удалить таблицу, вы можете использовать метод dropIfExists. Вот пример удаления таблицы users:
public function down()
{
    Schema::dropIfExists('users');
}
  1. Ограничения внешнего ключа.
    Laravel предоставляет методы для определения ограничений внешнего ключа между таблицами. Вот пример добавления внешнего ключа в таблицу users, ссылающегося на таблицу roles:
public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->foreignId('role_id')->constrained();
    });
}

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