Laravel 5.5错误基表或视图已存在:1050表'用户'已存在

问题描述 投票:4回答:9

产品规格:

  • Laravel版本:5.5.3
  • PHP版本:7.1
  • 数据库驱动程序和版本:MariaDB 10.1.26

描述:

C:/Users/user/code/blog/>php artisan migrate

[Illuminate\Database\QueryException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists (SQL: create table users (id int unsigned not null aut
o_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 timestamp null) default character set utf8mb4 collate utf8mb4_unicode_ci engine = InnoDB R
OW_FORMAT=DYNAMIC)

[PDOException]
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'users' already exists

重现步骤:

 C:/Users/user/code/blog/>laravel new website

 C:/Users/user/code/blog/>php artisan make:migration create_lists_table --create=lists

 C:/Users/user/code/blog/>php artisan migrate

问题

它创建用户表并给出错误但不创建列表

php mysql laravel-5 laravel-5.5
9个回答
11
投票

以下是我为解决同一问题所采取的步骤:

  1. 在控制台我写了php artisan tinker
  2. 然后,再次在控制台,Schema::drop('users')
  3. 最后php artisan migrate,这一切都奏效了。

8
投票

我通过改变我的create_users_table.php解决了我自己的问题

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::dropIfExists('users');
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

2
投票

以下是我为解决同一问题所采取的步骤:

  1. php artisan make:migration create_tableName_table --create = tableName。
  2. php工匠迁移。
  3. 出现错误,您可以删除迁移中的所有文件和数据库中的所有表。
  4. 将新表创建为1。
  5. 完。好的。

1
投票

解决此问题的简单方法是运行以下命令

php artisan migrate:新鲜


1
投票

以下命令解决了我的问题:

 1. php artisan tinker
 2. Schema::drop('your_table_name')
 3. php artisan migrate

0
投票

我有不同的解决方案,我删除迁移表,这里是我的解决方案

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::dropIfExists('migration');
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::dropIfExists('users');
}
}

0
投票

只需先从数据库中删除这些列。并运行composer update。然后最后运行php artisan migrate它会解决你的问题。最简单的解决方案。


0
投票

如此链接所述,有两种可能的解决方案:

https://www.codespeaker.com/laravel-framework/solutions-for-common-errors-on-artisan-commands/

首先是回滚

php artisan migrate:rollback

第二是放弃桌子。


0
投票

解:

  1. 如果您在localhost上,请转到数据库 - > phpmyadmin
  2. 删除您创建的数据库上的所有内容
  3. 在cmd上运行php artisan migrate
© www.soinside.com 2019 - 2024. All rights reserved.