Many times we have face issue/difficulties on either small or big project create a laravel migration for the same table or column that already exist. which fire error when we run the migration command

Luckily laravel has built-in methods to handle such issues.

Normal migration table code looks like below one:

public function up()
{
  Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->timestamps();
  });
}

Now, users table already exists and you run migration command then it’ll give you error. users table already exists something like that. As a solution, we can use Schema::hasTable('users') to check whether the table I exist already or not.

public function up()
{
  if ( !Schema::hasTable('users') ) {
    Schema::create('users', function (Blueprint $table) {
      $table->increments('id');
      $table->string('name');
      $table->timestamps();
    });
  }
}

So, If users table does not exist then it creates otherwise it’ll ignore it.

Laravel also has a function to check column exist or not but it’s a rare case to have such use I think,

public function up()
{
  if (Schema::hasTable('users')) {
    Schema::table('users', function (Blueprint $table) {
      if (!Schema::hasColumn('users', 'name')) {
    $table->string('name');
      } 
    });
  }
}

you can find more details from laravel official documentation.

Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments

Sign Up for Our Newsletters

Get notified of the best deals on our WordPress themes.