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 collate 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();
});
}
每当我进行新的迁移并尝试迁移它时,我得到的结果就是这个。即使我尝试 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 collate utf8mb4_unicode_ci)
[PDOException] SQLSTATE[42S01]:基础table或视图已存在:1050Table'users'已存在
问题是您正在尝试创建数据库中已存在的 table,
要么从数据库中删除 运行 php artisan migrate:refresh
或者,如果您进行了另一次迁移以将新列添加到用户 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();
});
}