Порядок полей в миграциях Laravel
При работе с таблицей в PMA или другом инструменте колонки отображаются в определенном порядке. На работу приложения это обычно не влияет, но для удобства просмотра структуры поля иногда хотят переставить.
В Laravel порядок колонок можно
задать при изменении поля через
Schema::table. Для этого
есть два метода - first
и after. Они работают
только с MySQL и MariaDB; в SQLite
и PostgreSQL порядок полей так
не меняют.
Метод first помещает колонку
первой в таблице - сразу после
служебных полей, если они есть.
Его пишут в цепочке перед
change:
<?php
public function up(): void
{
Schema::table('posts', function (Blueprint $table) {
$table->string('title')->first()->change();
});
}
?>
Метод after ставит колонку
после указанного поля. В параметр
передают имя уже существующей
колонки:
<?php
public function up(): void
{
Schema::table('posts', function (Blueprint $table) {
$table->string('title')->after('id')->change();
});
}
?>
Оба метода используют при изменении
существующего поля, а не при
первом создании таблицы. Новую
колонку тоже можно сразу добавить
после нужного поля - для этого
after указывают в миграции
на добавление.
В таблице с юзерами
переместите поле name
на первое место.
Добавьте к таблице с юзерами
новое поле sex после
поля id.