Laravel 迁移问题

Laravel issue on migration

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

[Illuminate\Database\QueryException] SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' 已经存在(SQL: create table users ( id int unsigned not null auto_increment 主键,name varchar(255) not null,email varchar(255) not null, password varchar(255) 不为空,remember_token varchar(100) 为空,created_at 时间戳为空,updated_at tim estamp null) 默认字符集 utf8mb4 collat​​e utf8mb4_unicode_ci)

[PDOException] SQLSTATE[42S01]:基础table或视图已存在:1050Table'users'已存在

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

要么从数据库中删除 运行 php artisan migrate:refresh

之前的用户 table

或者,如果您进行了另一次迁移以将新列添加到用户 table,那么您需要

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

而不是

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

重要的是 Schema::create 不会创建 table,而 Schema::table 是您在修改现有 table.[=15= 时使用的内容]

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

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

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();
    });
}