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

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

  1. Создание таблицы.
    Чтобы создать новую таблицу, вы можете использовать метод create, предоставляемый построителем схемы Laravel. Вот пример:
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamps();
        });
    }
    public function down()
    {
        Schema::dropIfExists('users');
    }
}
  1. Добавление столбцов.
    Чтобы добавить столбцы в существующую таблицу, вы можете использовать метод tableвместе с методом addColumn. Вот пример:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddPhoneNumberToUsersTable extends Migration
{
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string('phone_number')->after('email');
        });
    }
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->dropColumn('phone_number');
        });
    }
}
  1. Изменение столбцов.
    Чтобы изменить существующий столбец, вы можете использовать метод change. Вот пример:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class ModifyEmailColumnInUsersTable extends Migration
{
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string('email')->nullable()->change();
        });
    }
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string('email')->change();
        });
    }
}
  1. Удаление столбцов.
    Чтобы удалить столбец из существующей таблицы, вы можете использовать метод tableвместе с методом dropColumn. Вот пример:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class RemovePhoneNumberFromUsersTable extends Migration
{
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->dropColumn('phone_number');
        });
    }
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string('phone_number');
        });
    }
}

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