Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pplrPmMgFRm 90 of 252 menu
◀ ▶

Удаление полей в миграциях Laravel

Структура таблицы не всегда остается неизменной. Поле могло быть нужно на этапе прототипа, а потом стало лишним. Удалять колонку вручную в PMA неудобно - лучше описать изменение миграцией, как добавление или переименование полей.

Для удаления одной колонки в Schema::table используют метод dropColumn. В параметр передают имя поля:

<?php Schema::table('posts', function (Blueprint $table) { $table->dropColumn('name'); }); ?>

После применения миграции колонка исчезнет из таблицы вместе со всеми данными в ней. Откатить такое удаление без резервной копии обычно нельзя - данные не сохраняются.

Несколько столбцов можно удалить одним вызовом - передайте массив имен:

<?php Schema::table('posts', function (Blueprint $table) { $table->dropColumn(['name', 'desc']); }); ?>

Пример миграции для таблицы пользователей:

<?php public function up(): void { Schema::table('users', function (Blueprint $table) { $table->dropColumn('age'); }); } public function down(): void { Schema::table('users', function (Blueprint $table) { $table->integer('age'); }); } ?>

В методе down колонку можно создать заново - тогда откат вернет структуру. Сами значения в поле при этом не восстановятся. Не забудьте убрать удаленное поле из моделей, форм и запросов в коде.

Удалите из таблицы с юзерами поле age.

Удалите из таблицы с юзерами поля name и surname.

Что произойдет с данными в колонке после dropColumn?

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить