РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
363 of 1392 menu

Метод rename

Метод rename класса Schema применяется для изменения имени существующей таблицы в базе данных. Первым параметром передаётся текущее имя таблицы, вторым - новое имя. Метод возвращает результат выполнения операции в виде булева значения. Важно помнить, что переименование таблицы может повлиять на связанные внешние ключи и индексы, поэтому следует быть осторожным при работе с таблицами, имеющими связи.

Синтаксис

<?php Schema::rename($from, $to); ?>

Пример

Давайте переименуем таблицу 'old_posts' в '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() { Schema::rename('old_posts', 'posts'); } public function down() { Schema::rename('posts', 'old_posts'); } }; ?>

Пример

Переименуем таблицу 'users_data' в 'user_profiles' с проверкой существования таблицы:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up() { if (Schema::hasTable('users_data')) { Schema::rename('users_data', 'user_profiles'); } } public function down() { if (Schema::hasTable('user_profiles')) { Schema::rename('user_profiles', 'users_data'); } } }; ?>

Пример

Переименуем таблицу, используя метод внутри контроллера для динамического изменения структуры:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Schema; use Illuminate\Http\Request; class TableController extends Controller { public function renameTable(Request $request) { $oldName = $request->input('old_name'); $newName = $request->input('new_name'); if (Schema::hasTable($oldName) && !Schema::hasTable($newName)) { $res = Schema::rename($oldName, $newName); if ($res) { echo "Table renamed successfully"; } else { echo "Failed to rename table"; } } else { echo "Table does not exist or new name is already taken"; } } } ?>

Пример

Выполним переименование таблицы с обработкой возможных ошибок при помощи try-catch:

<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Support\Facades\Schema; use Illuminate\Database\QueryException; class RenameTableCommand extends Command { protected $signature = 'table:rename {old} {new}'; protected $description = 'Rename a database table'; public function handle() { $old = $this->argument('old'); $new = $this->argument('new'); try { if (Schema::hasTable($old)) { Schema::rename($old, $new); $this->info("Table '{$old}' renamed to '{$new}' successfully"); } else { $this->error("Table '{$old}' does not exist"); } } catch (QueryException $e) { $this->error("Error renaming table: " . $e->getMessage()); } } } ?>

Смотрите также

  • метод create,
    который создаёт новую таблицу в базе данных
  • метод table,
    который позволяет модифицировать существующую таблицу
  • метод drop,
    который удаляет таблицу из базы данных
  • метод hasTable,
    который проверяет существование таблицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить