Is there any way to detect if a database table exists with Laravel
Solution 1:
If you are using Laravel 4 or 5 then there is the hasTable()
method, you can find it in the L4 source code or the L5 docs:
Schema::hasTable('mytable');
Solution 2:
To create a new table there is only one check by Laravel Schema function hasTable
.
if (!Schema::hasTable('table_name')) {
// Code to create table
}
But if you want to drop any table before checking its existence then Schema have a function called dropIfExists
.
Schema::dropIfExists('table_name');
It will drop the table if table will exist.
Solution 3:
if you are using different connection then you have to go with my answer.
Schema::connection("bio_db")->hasTable('deviceLogs_11_2019')
here on hasTable()
function you can pass more than 1 table name.
Solution 4:
As Phill Sparks answered, you can check whether a table exists using:
Schema::hasTable('mytable')
Notice that there are cases your app uses different connections. In this case, you should use:
Schema::connection('myConnection')->hasTable('mytable')
(Don't forget to use use Schema;
on the beginning of your code).