Ответ 1
Хороший простой способ, который я нашел, это просто использовать phpmyadmin и просто отбросить таблицу вручную. Конечно, если миграция все еще существует, когда вы снова запустите миграцию, таблица будет создана снова.
Проблема в том, что у меня есть эта ошибка:
[PDOException]
SQLSTATE [42S01]: базовая таблица или представление уже существуют: 1050 "Песни" уже существуют
Это мой файл миграции:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateSongsTable extends Migration
{
public function up()
{
Schema::create('songs', function (Blueprint $table)
{
$table->increments('id');
$table->integer('user_id');
$table->string('title');
$table->string('slug')->unique();
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
}
}
Я думаю, что решение будет состоять только в том, чтобы удалить таблицу, а затем снова запустить миграцию, так как я могу отбросить таблицу в Laravel 5 с помощью командной строки? Я использую MySQL.
Хороший простой способ, который я нашел, это просто использовать phpmyadmin и просто отбросить таблицу вручную. Конечно, если миграция все еще существует, когда вы снова запустите миграцию, таблица будет создана снова.
Чтобы удалить таблицу, вы можете использовать метод Schema:: drop:
Schema::drop('users');
// Better
Schema::dropIfExists('users');
Чтобы удалить таблицу в laravel, создайте первую миграцию
Шаг для удаления таблицы
$ php artisan make:migration drop_user_table
Добавьте это в свой файл миграции внутри функции Schema::drop('tableName');
$ php artisan migrate
Хороший способ удалить существующую таблицу, вы можете использовать методы drop или dropIfExists:
Schema::drop('users');
Schema::dropIfExists('users');
Вы также можете выполнить откат, если хотите удалить свою последнюю таблицу миграции
php artisan migration:rollback
Команда migrate: reset откатит все миграции вашего приложения:
php artisan migrate:reset
Команда migrate: fresh удалит все таблицы из базы данных, а затем выполнит команду migrate:
php artisan migrate:fresh
php artisan migrate:fresh --seed
Вам нужен метод down при переносе, чтобы при запуске php artisan migrate:rollback
он мог удалить вашу базу данных.
например.
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateSongsTable extends Migration
{
public function up()
{
Schema::create('songs', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->string('title');
$table->string('slug')->unique();
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
}
public function down()
{
Schema::drop('songs');
}
}
Простой способ удалить таблицу и снова запустить миграцию. Просто запустите команду ремесленника.
php artisan migrate:fresh
Note: It will drop all tables and re-run migration.
или, если у вас есть семя таблиц, выполните эту команду
php artisan migrate:fresh --seed
Ссылка: Документация Laravel