所以我想要
php artisan migrate:fresh
但是我收到这个错误
基表或视图已存在:1050 表“角色”已存在
即使我从 phpmyadmin 删除数据库,清理缓存并再次创建数据库,它仍然显示相同的消息,表行的迁移如下:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateRolesTable extends Migration
{
public function up()
{
Schema::create('roles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->tinyInteger('status');
});
}
public function down()
{
Schema::dropIfExists('roles');
}
}
显示完整错误:
SQLSTATE[42S01]:基表或视图已存在:1050 表“角色”已存在(SQL:创建表
(roles
bigint unsigned not null auto_increment 主键,id
varchar(255) not null,name
varchar(255) not null,guard_name
timestamp null,created_at
timestamp null) 默认字符集 utf8mb4 collate 'utf8mb4_unicode_ci')updated_at
这是为什么呢?我可以或应该做什么?
首先使用此代码Schema::dropIfExists('roles');
删除
roles表,然后创建。
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateRolesTable extends Migration
{
public function up()
{
Schema::dropIfExists('roles'); //added
Schema::create('roles', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->tinyInteger('status');
});
}
public function down()
{
Schema::dropIfExists('roles');
}
}
如果它在你进行工匠迁移之前已经存在,它当然会这样说。您是否进行了迁移并且中途中断了?您可以重置它或删除该表并重试(如果您在本地开发中并且可以删除它)。
php artisan 迁移:重置
您可以简单地这样做,而不是做那么多回滚和浪费时间:
解决了