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

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

Иногда имя колонки перестает подходить: в коде уже используют title, а в базе поле все еще называется name. Можно удалить старое поле и создать новое, но тогда потеряются данные. Проще переименовать колонку миграцией.

Для этого в Schema::table используют метод renameColumn. Первым параметром передают старое имя поля, вторым - новое:

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

После применения такой миграции в таблице останется то же содержимое, изменится только имя колонки. В PMA или SQLite-файле вы увидите уже title вместо name.

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

<?php public function up(): void { Schema::table('users', function (Blueprint $table) { $table->renameColumn('name', 'first_name'); $table->renameColumn('surname', 'second_name'); }); } public function down(): void { Schema::table('users', function (Blueprint $table) { $table->renameColumn('first_name', 'name'); $table->renameColumn('second_name', 'surname'); }); } ?>

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

В таблице с юзерами переименуйте поле name в поле first_name, а поле surname в second_name.

Зачем переименовывать колонку, а не удалять и создавать заново?

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