Команда make:migration
Команда make:migration создаёт новый файл миграции в директории database/migrations.
Миграции позволяют управлять схемой базы данных через PHP-код, отслеживать изменения
и откатывать их при необходимости. Имя файла автоматически включает временную метку
для правильного порядка выполнения.
Синтаксис
php artisan make:migration name
Основные параметры
Команда принимает следующие параметры:
--create - указывает, что миграция создаёт новую таблицу.
В качестве значения передаётся имя таблицы.
--table - указывает, что миграция изменяет существующую таблицу.
В качестве значения передаётся имя таблицы.
--path - указывает пользовательский путь для сохранения миграции.
Пример
Давайте создадим миграцию для таблицы articles:
php artisan make:migration create_articles_table
Результат выполнения команды:
"Created Migration: 2026_09_07_120000_create_articles_table"
Пример
Создадим миграцию для новой таблицы categories с автоматическим заполнением шаблона:
php artisan make:migration create_categories_table --create=categories
Сгенерированный файл миграции:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('categories', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('categories');
}
};
Пример
Создадим миграцию для добавления поля в существующую таблицу articles:
php artisan make:migration add_user_id_to_articles_table --table=articles
Сгенерированный файл миграции:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('articles', function (Blueprint $table) {
$table->foreignId('user_id')->constrained();
});
}
public function down(): void
{
Schema::table('articles', function (Blueprint $table) {
$table->dropForeign(['user_id']);
$table->dropColumn('user_id');
});
}
};
Пример
Создадим миграцию для таблицы comments с пользовательским путём:
php artisan make:migration create_comments_table --create=comments --path=custom/path
Результат выполнения команды:
"Created Migration: custom/path/2026_09_07_120003_create_comments_table"
Смотрите также
-
команда
migrate,
которая выполняет все ожидающие миграции -
команда
migrate-fresh,
которая удаляет все таблицы и выполняет миграции заново -
команда
migrate-rollback,
которая откатывает последнюю партию миграций -
команда
migrate-status,
которая показывает статус всех миграций