Home » Php » php – Laravel 5.5 Error Base table or view already exists: 1050 Table 'users' already exists

php – Laravel 5.5 Error Base table or view already exists: 1050 Table 'users' already exists

Posted by: admin July 12, 2020 Leave a comment

Questions:

Specifications:

  • Laravel Version: 5.5.3
  • PHP Version: 7.1
  • Database Driver & Version: MariaDB 10.1.26

Description:

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

Steps To Reproduce:

 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

Problem

It Creates users table and give error but not creating lists table

How to&Answers:

I Solved My Problem Myself
by Changing My 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');
    }
}

Answer:

Here are the steps I took to solve the same issue:

  1. In the console I wrote php artisan tinker

  2. Then, again in the console, Schema::drop('users')

  3. At the end php artisan migrate and it all worked.

Answer:

Following command solved my problem:

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

Answer:

Here are the steps I took to solve the same issue:

  1. php artisan make:migration create_tableName_table –create=tableName.

  2. php artisan migrate.

  3. appear error,you can drop all file in migration and all table in database.

  4. create new table as 1.

  5. finish. okay.

Answer:

The simple way to solve this problem is run the following command

php artisan migrate:fresh

Answer:

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

Use !Schema::hasTable(‘users’) ,It will check whether a table already exist in database or not.
If you don’t want to drop table then it is a good idea.

Answer:

I have different solution, i delete migration table, here my solution

<?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');
}
}

Answer:

just delete those columns first from database. and run composer update . and then finally run php artisan migrate it would solve your problem. the simplest solution for your problem.

Answer:

There are two possible solutions for this as mentioned on this link:

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

First is rollback

php artisan migrate:rollback

Second is dropping of tables.

Answer:

Solution:

  1. Go on database -> phpmyadmin if you are on localhost
  2. Delete everything on database that you created
  3. On cmd run php artisan migrate

Answer:

Agree with Nitesh’s answer but I think that’s not the best practice to drop the table everytime for no reason. We could also use simple “if” check with condition Schema::hasTable(‘users’) according to the docs. So we can use it as:

<?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()
    {
        if(!Schema::hasTable('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');
    }
}

This solution will also be feasible in the scenario when you will already have a table and need some modification then you will be able to do anything in the else statement as well.

Answer:

Migration errors usually occur when using php artisan migrate and your migration has an error.

Within Laravel, there are some ways to reverse something that has been
performed, especially migrations to more robust databases like MySql,
for example.

One way to be reversing the step taken

php artisan migrate

is to run the

php artisan migrate: rollback

It automatically reverses the last migrate performed
You also have the possibility to delegate how many steps will be reversed with the step parameter.

The number says how many steps will be reversed

php artisan migrate: rollback --step=1

Answer:

You can skip migrate the table if table exist in database by add this code:

public function up()
{
    if(Schema::hasTable('users')) return;       //add this line to your database file

    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->timestamps();

    });
}

Answer:

Create your migrations by command
php artisan make:migration create_category_table
Then in your database/migrations set your necessary fields and databases,then run this command
pho artisan migrate –pretend
It will show sql statements,copy sql statement of category and paste it in database in sql and just click on run,your migrations would be there,no need to delete users table

Answer:

Change your Mysql Engine Setting

In config/database.php, change your mysql engine setting to:
'engine' => 'innodb row_format=dynamic'.

Note: This is applicable to Laravel 5.2.14+