Laravel关于迁移的问题

时间:2017-04-23 02:17:06

标签: php mysql sql-server laravel migrate

每当我进行新的迁移并尝试迁移它时,我得到的结果就是这个。即使我尝试迁移:刷新等等。你觉得这个问题怎么样?我还检查了我的.env文件。谢谢!

[照亮\数据库\ QueryException]   SQLSTATE [42S01]:基表或视图已存在:1050表'users'已存在(SQL:create table users id int unsigned not null auto_increment primary key,name varchar( 255)not null,email varchar(255)not null,   password varchar(255)not null,remember_token varchar(100)null,created_at timestamp null,updated_at tim   estamp null)默认字符集utf8mb4 collat​​e utf8mb4_unicode_ci)

[PDOException]   SQLSTATE [42S01]:基表或视图已存在:1050表'用户'已存在

2 个答案:

答案 0 :(得分:0)

问题是您正在尝试创建数据库中已存在的表,

在运行php artisan migrate:refresh

之前从数据库中删除users表

或者如果您已经进行了另一次迁移以将新列添加到users表中,那么您需要

Schema::table('users', function (Blueprint $table)

而不是

Schema::create('users', function (Blueprint $table)

Schema::create创建表格并不重要,Schema::table是您在修改现有表格时使用的内容。

答案 1 :(得分:0)

使用!Schema::hasTable('users'),它将检查数据库中是否已存在表。

如果您不想删除已经存在的表,那是个好主意。

if (!Schema::hasTable('users')) {
    Schema::create('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}