web-dev-qa-db-fra.com

Laravel 5.5 Erreur La table de base ou la vue existe déjà: la table 1050 "utilisateurs" existe déjà

Spécifications:

  • Version Laravel: 5.5.3
  • Version PHP: 7.1
  • Pilote et version de la base de données: 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

étapes pour reproduire:

 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

Problème

Il crée une table d'utilisateurs et donne une erreur mais ne crée pas de table de listes

6

J'ai résolu mon problème moi-même en modifiant mon 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');
    }
}
9

Voici les étapes que j'ai suivies pour résoudre le même problème:

  1. Dans la console, j'ai écrit php artisan tinker

  2. Puis, à nouveau dans la console, Schema::drop('users')

  3. À la fin php artisan migrate Et tout a fonctionné.

12
Kaloyan Drenski

La commande suivante a résolu mon problème:

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

Voici les étapes que j'ai suivies pour résoudre le même problème:

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

  2. l'artisan php migre.

  3. apparaît erreur, vous pouvez supprimer tous les fichiers dans la migration et toutes les tables dans la base de données.

  4. créer une nouvelle table comme 1.

  5. terminer. d'accord.

2
Bùi Huy Thống

La manière simple de résoudre ce problème est d'exécuter la commande suivante

php artisan migrate: fresh

0
suman

Il existe deux solutions possibles pour cela, comme mentionné sur ce lien:

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

Le premier est le retour en arrière

php artisan migrate: restauration

La seconde est la suppression des tables.

0
smzapp

supprimez simplement ces colonnes d'abord de la base de données. et exécutez composer update. et enfin exécutez php artisan migrate cela résoudrait votre problème. la solution la plus simple pour votre problème.

0
james

J'ai une solution différente, je supprime la table de migration, voici ma 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');
}
}
0
Aris Budianto

Solution:

  1. Allez dans la base de données -> phpmyadmin si vous êtes sur localhost
  2. Supprimer tout sur la base de données que vous avez créée
  3. Sur cmd run php artisan migrate
0
besartm