Search code examples
phpmysqllaravel-5database-migration

Error Users already exits when trying to create a column to an existing table


I'm trying to add a new column to an existing table 'users'. I created a new migration 'add_privilege_column_to_users_table'. When I try to run the php artisan migration, I get an error that the 'users' table already exists. Am I missing something here?

I've already tried several methods from Googling and from other people that have had the same problem here at starckoverflow. But none of the code from here helped me.

class AddPrivilegesColumnToUsersTable extends Migration
{
/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('users', function (Blueprint $table) {

        $table->string('privilege_type')->after('remember_token');

    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('users', function (Blueprint $table) {

    });
}
}

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

That's the specific error that I get when I run php artisan migrate. I'm just trying to add a new column to that table.

Below is my migration status:

Run? | Migration
No     2014_10_12_000000_create_users_table
No     2014_10_12_100000_create_password_resets_table
No     2019_07_28_071643_add_privileges_column_to_user_table

Solution

  • It seems you rolled back too far, but your users table was not dropped thus Laravel, when trying to run migrations, is trying to re-create the table.

    If you head over to your database, you'll be able to update the migration to say it has already executed thus skipping over that batch.

    UPDATE migrations SET batch = 1 WHERE migration = '2014_10_12_000000_create_users_table';