Переименование таблиц в Laravel
Иногда меняется не структура таблицы,
а ее имя. В коде уже используют
articles, а в базе таблица
все еще называется posts.
Удалять таблицу и создавать новую
не нужно - данные останутся на месте,
если переименовать таблицу миграцией.
Для переименования вызывают метод
rename у фасада Schema.
Первым параметром передают старое
имя таблицы, вторым - новое:
<?php
Schema::rename('posts', 'articles');
?>
После применения миграции в PMA
или SQLite-файле вы увидите таблицу
articles с теми же строками,
что были в posts. Меняется
только имя.
Пример миграции для переименования таблицы пользователей:
<?php
public function up(): void
{
Schema::rename('users', 'members');
}
public function down(): void
{
Schema::rename('members', 'users');
}
?>
В методе down имена меняют
обратно - откат вернет прежнее
название таблицы. Не забудьте
поправить модели Eloquent, запросы
и миграции, где старое имя
указано явно.
Переименуйте таблицу с юзерами
в members.
Зачем переименовывать таблицу, а не создавать новую и переносить данные вручную?