Sometimes, especially in bigger projects, we run into issue of writing a create migration for the same table, or even column that already exist. Luckily, Laravel has a quick way of checking it.
Typical migration looks like this:
public function up()
{
  Schema::create('flights', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->string('airline');
    $table->timestamps();
  });
}And if flights table already exists (for whatever reason), you would get an error. Solution to this is Schema::hasTable() method.
public function up()
{
  if (!Schema::hasTable('flights')) {
    Schema::create('flights', function (Blueprint $table) {
      $table->increments('id');
      $table->string('name');
      $table->string('airline');
      $table->timestamps();
    });
  }
}So, if table flights does not exist, then we create it.
Of course, it can be used in a positive way - for example, if we want to add a new column to existing table, then we may check if table does exist.
Let's combine this with another example and with another method Schema::hasColumn(), which has two parameters - table name and column name.
public function up()
{
  if (Schema::hasTable('flights')) {
    Schema::table('flights', function (Blueprint $table) {
      if (!Schema::hasColumn('flights', 'departure_time')) {
    $table->timestamp('departure_time');
      }
    });
  }
}You can read more about migrations and its various features in the official documentation.
![[NEW] Laravel Modules and DDD](https://laraveldaily.com/storage/1033/conversions/900-600-laravel-(12)-front_grid.jpg) 
                                                    -front_grid.jpg) 
                                                    -front_grid.jpg) 
                                                    
No comments or questions yet...