Метод drop
Метод drop применяется к фасаду Schema и удаляет указанную таблицу из базы данных. В качестве единственного параметра передаётся имя таблицы в виде строки. Если таблица не существует, метод вызовет исключение, поэтому рекомендуется использовать метод dropIfExists для безопасного удаления.
Синтаксис
<?php
use Illuminate\Support\Facades\Schema;
Schema::drop($tableName);
?>
Пример
Удалим таблицу 'users' в методе down миграции:
<?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::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
}
public function down()
{
Schema::drop('users');
}
};
?>
Результат выполнения команды:
"Table 'users' dropped successfully"
Пример
Удалим таблицу '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::create('posts', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('body');
$table->foreignId('user_id')->constrained();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('posts');
}
};
?>
Результат выполнения кода:
"Table 'posts' dropped if exists"
Пример
Удалим несколько таблиц в одной миграции:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
// создание таблиц
Schema::create('products', function ($table) {
$table->id();
$table->string('name');
$table->integer('price');
});
Schema::create('orders', function ($table) {
$table->id();
$table->integer('product_id');
$table->integer('quantity');
});
}
public function down()
{
Schema::drop('orders');
Schema::drop('products');
}
};
?>
Результат выполнения кода:
"Tables 'orders' and 'products' dropped successfully"
Смотрите также
-
метод
dropIfExists,
который удаляет таблицу только если она существует -
метод
create,
который создаёт новую таблицу в базе данных -
метод
table,
который используется для изменения существующей таблицы -
метод
hasTable,
который проверяет существование таблицы