'Is there any way to detect if a database table exists with Laravel
I want to be able to create a table using
Schema::create('mytable',function($table)
{
$table->increments('id');
$table->string('title');
});
But before that I would like to check if the table already exists, perhaps something like
Schema::exists('mytable');
However, the above function does not exist. What else can I use?
Solution 1:[1]
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 2:[2]
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).
Solution 3:[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:[4]
No built in function for this in L3. You can do a raw query:
$table = "foo";
$check = DB::only('SELECT COUNT(*) as `exists`
FROM information_schema.tables
WHERE table_name IN (?)
AND table_schema = database()',$table);
if(!$check) // No table found, safe to create it.
{
// Schema::create …
}
Solution 5:[5]
Rather, depend on information schema query instead of checking for some data in the tables with COUNT().
SELECT table_schema
FROM information_schema.tables
WHERE table_schema = DATABASE()
AND table_name = 'table_name';
Change your 'table_name' value.
If you get one row output, it means the table exists.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Brn.Rajoriya |
| Solution 2 | guyaloni |
| Solution 3 | pankaj kumar |
| Solution 4 | |
| Solution 5 | simhumileco |
