Удаление индексов в Laravel
Если индекс больше не нужен или
его нужно пересоздать с другими
параметрами, его удаляют в миграции
через Schema::table.
Для уникального индекса -
метод dropUnique, для
обычного - dropIndex.
Передают массив с именем колонки -
Laravel сам вычислит имя индекса:
<?php
Schema::table('users', function (Blueprint $table) {
$table->dropUnique(['email']);
$table->dropIndex(['city']);
});
?>
Пример миграции, которая снимает старые индексы перед изменением структуры:
<?php
public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->dropIndex(['city']);
$table->dropUnique(['email']);
});
}
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->index('city');
$table->unique('email');
});
}
?>
В методе down индексы
можно вернуть обратно - так
миграцию получится откатить.
Напишите миграцию, которая
удаляет индекс по полю email.
Зачем в down снова
создавать удаленные индексы?