这是我的迁移表
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUserTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->integer('role_id')->unsigned();
$table->string('name');
$table->string('email',50)->unique();
$table->string('username');
$table->string('password');
$table->boolean('active');
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
}
当我尝试迁移时发生以下错误
* [照亮\数据库\ QueryException]
SQLSTATE [42S01]:基表或视图已存在:1050表'用户'alre
ady exists(SQL:create table users
(id
int unsigned not null auto_incr
ement主键,role_id
int unsigned not null,name
varchar(191)not
null,email
varchar(50)not null,username
varchar(191)not null,pas
sword
varchar(191)not null,active
tinyint(1)not null, remember_token
varchar(100)null,created_at
timestamp null,updated_at
timestamp nu
ll)默认字符集utf8mb4 collate utf8mb4_unicode_ci)
[PDOException] SQLSTATE [42S01]:基表或视图已存在:1050表'用户'alre ady存在*
请告诉我该怎么办?我已经使用了migrate:reset或dumpautoload或rollback没有发生任何事情。很多时候我编辑或删除这个用户文件并重新创建它。
答案 0 :(得分:4)
试试这个
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUserTable extends Migration
{
public function up()
{
Schema::dropIfExists('users');
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->integer('role_id')->unsigned();
$table->string('name');
$table->string('email',50)->unique();
$table->string('username');
$table->string('password');
$table->boolean('active');
$table->rememberToken();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
}
答案 1 :(得分:1)
当您要迁移数据库中存在的表时,将显示此问题: 对于这个问题,只需手动转到PHPMYADMIN并删除所有表,现在 运行命令php artisan migration
答案 2 :(得分:0)
危险 -通过删除表,回滚或刷新数据库将破坏该表或数据库中的所有数据,因此不建议将这些方法用于生产中绝对不应在迁移中包含删除表行为。
很明显,有很多针对此问题的“解决方案”,但是我阅读的所有解决方案都是非常具有破坏性的解决方案,并且都不适用于生产数据库。是的,他们摆脱了错误,但是付出了什么代价?
根据解决方案的数量,似乎也可能有多种原因导致此错误。
我的错误是由我的迁移表中的条目缺失引起的。这需要一个非常简单的解决方案-重新添加条目。像这样的简单问题绝对不能保证数据库刷新