Метод renameColumn
Метод renameColumn класса Blueprint применяется
в миграциях для переименования существующей колонки таблицы.
Первым параметром передаётся текущее имя колонки, вторым - новое имя.
Метод изменяет структуру таблицы без потери данных.
Синтаксис
<?php
Schema::table('table_name', function (Blueprint $table) {
$table->renameColumn('old_column', 'new_column');
});
?>
Пример
Давайте переименуем колонку 'name' в 'full_name'
в таблице 'users':
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->renameColumn('name', 'full_name');
});
}
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->renameColumn('full_name', 'name');
});
}
};
?>
Результат выполнения кода:
"Column 'name' renamed to 'full_name' successfully"
Пример
Переименуем колонку 'user_id' в 'author_id'
в таблице 'posts':
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('posts', function (Blueprint $table) {
$table->renameColumn('user_id', 'author_id');
});
}
public function down(): void
{
Schema::table('posts', function (Blueprint $table) {
$table->renameColumn('author_id', 'user_id');
});
}
};
?>
Результат выполнения кода:
"Column 'user_id' renamed to 'author_id' successfully"
Пример
Переименуем несколько колонок в одной миграции с помощью цепочки
вызовов renameColumn:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::table('products', function (Blueprint $table) {
$table->renameColumn('product_name', 'title');
$table->renameColumn('product_price', 'price');
$table->renameColumn('product_desc', 'description');
});
}
public function down(): void
{
Schema::table('products', function (Blueprint $table) {
$table->renameColumn('title', 'product_name');
$table->renameColumn('price', 'product_price');
$table->renameColumn('description', 'product_desc');
});
}
};
?>
Результат выполнения кода:
"Columns renamed successfully: product_name -> title, product_price -> price, product_desc -> description"
Смотрите также
-
класс
Blueprint,
который используется для построения схемы таблицы -
метод
dropColumn,
который удаляет существующую колонку -
класс
Schema,
который используется для управления схемой базы данных -
метод
index,
который создаёт индекс для колонки