Php 运行新创建的迁移文件时发生laravel 5迁移错误

Php 运行新创建的迁移文件时发生laravel 5迁移错误,php,laravel,laravel-5,Php,Laravel,Laravel 5,我刚刚创建了一个新的迁移文件,以便在现有表中插入一个新列 文件代码为: <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class AddStatusToPhoto extends Migration { /** * Run the migrations. * * @return void */

我刚刚创建了一个新的迁移文件,以便在现有表中插入一个新列

文件代码为:

<?php

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

class AddStatusToPhoto extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('photos', function(Blueprint $table)
        {
            $table->integer('status');
        });

    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        //
    }


}

有人知道问题出在哪里吗?

您以前的迁移角色只成功运行了一半。这意味着添加了表
权限\u角色
,但提前终止。因此,迁移从未被标记为完成并添加到
migrations
表中。它尝试重新运行权限迁移文件,但失败,因为该表已存在。您需要手动将旧迁移文件添加到数据库中,或者使其成功运行

可以删除代码,或将其包装在if语句中。

确保该表在数据库中不存在,并且down()方法应包含能够删除该表的代码。

在使用命令“php artisan migrate:refresh”之前,您必须先使用命令“
php artisan migrate
”在迁移表中记录迁移原始文件此外,您还需要更正down方法

migrate:refresh命令将首先回滚所有数据库迁移,然后运行migrate命令。此命令可有效地重新创建整个数据库:

php artisan migrate:refresh

php artisan migrate:refresh --seed

请参阅此项。

将这行代码放在迁移中

if(!Schema::hasTable('post')){
  Schema::create('post', function (Blueprint $table) {
            $table->increments('id');
            #etc
        });
}

这应该是注释我已经尝试刷新但不起作用(而且我还记得会删除所有数据?),最后我临时删除了所有旧迁移文件在您的权限角色迁移脚本中,必须在
down()
中添加下拉表?我注意到权限角色表没有回滚,当我手动删除它时,同样的错误仍然存在。
if(!Schema::hasTable('post')){
  Schema::create('post', function (Blueprint $table) {
            $table->increments('id');
            #etc
        });
}