Как бросить стол в Ларавеле?

Проблема в том, что у меня есть эта ошибка:

[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.

Ответ 1

Хороший простой способ, который я нашел, это просто использовать phpmyadmin и просто отбросить таблицу вручную. Конечно, если миграция все еще существует, когда вы снова запустите миграцию, таблица будет создана снова.

Ответ 2

Чтобы удалить таблицу, вы можете использовать метод Schema:: drop:

Schema::drop('users');

// Better
Schema::dropIfExists('users');

Ответ 3

Чтобы удалить таблицу в laravel, создайте первую миграцию

Шаг для удаления таблицы

$ php artisan make:migration drop_user_table

Добавьте это в свой файл миграции внутри функции Schema::drop('tableName');

$ php artisan migrate

Ответ 4

Хороший способ удалить существующую таблицу, вы можете использовать методы 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

Ответ 5

Вам нужен метод 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');
    }
}

Ответ 6

Простой способ удалить таблицу и снова запустить миграцию. Просто запустите команду ремесленника.

php artisan migrate:fresh

Note: It will drop all tables and re-run migration.

или, если у вас есть семя таблиц, выполните эту команду

php artisan migrate:fresh --seed

Ссылка: Документация Laravel