Laravel,列已存在:1060 列名重复

use*_*812 3 php laravel

我正在运行 Laravel 版本 5.4.22

php artisan migrate:rollback在终端中使用然后错误消息如下

H:\wamp_server\www\cms>php artisan migrate:rollback

[Illuminate\Database\QueryException] SQLSTATE[42S21]:列已经存在:1060 列名重复'is_admin'(SQL:alter table postsadd is_adminint not null)

[PDOException] SQLSTATE[42S21]:列已存在:1060 列名重复“is_admin”

下面的迁移代码

    <?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AddIsAdminColumnToPostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('posts', function (Blueprint $table) {
            //
            $table->integer('is_admin')->unsigned();

        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('posts', function (Blueprint $table) {
            //

            $table->integer('is_admin');
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

ATe*_*Guy 6

您的代码是错误的,您也在 down 函数中添加了列,请参阅下面的代码进行修复:

public function down()
{
    //
    Schema::table('posts', function (Blueprint $table) {
    $table->dropColumn('is_admin');
    });
}
Run Code Online (Sandbox Code Playgroud)

Laravel 文档,显示这个:https ://laravel.com/docs/5.4/migrations#dropping-columns