Description
Laravel Version
12.0.1
PHP Version
any
Database Driver & Version
MySQL/MariaDB
Description
Hello.
I decided to add laravel 12 support to my package, but now the prefix ONLY for MySQL/MariaDB builders is added to the database name. On postgres, sqlite everything is ok.
Describe the bug
Methods like these use wrapArray, which adds a prefix to the string.
public function compileDropAllTables($tables)
{
return 'drop table '.implode(',', $this->wrapArray($tables));
}
When I replaced the code with this one, the problem went away immediately.
public function compileDropAllTables($tables)
{
return 'drop table '.implode(',', array_map($this->wrapTable(...), $tables));
}
Expected behavior
- drop table `testswallet`.`testscache`,`testswallet`.`testscache_locks`,`testswallet`.`testsitems`,`testswallet`.`testsmanagers`,`testswallet`.`testsmigrations`,`testswallet`.`teststransaction`,`testswallet`.`teststransfer`,`testswallet`.`testsusers`,`testswallet`.`testswallet`)
+ drop table `wallet`.`testscache`,`wallet`.`testscache_locks`,`wallet`.`testsitems`,`wallet`.`testsmanagers`,`wallet`.`testsmigrations`,`wallet`.`teststransaction`,`wallet`.`teststransfer`,`wallet`.`testsusers`,`wallet`.`testswallet`)
postgres: https://github.com/bavix/laravel-wallet/actions/runs/13506555515/job/37870925893
mariadb: https://github.com/bavix/laravel-wallet/actions/runs/13506555515/job/37870935563
mysql: https://github.com/bavix/laravel-wallet/actions/runs/13506555515/job/37870930173
sqlite: https://github.com/bavix/laravel-wallet/actions/runs/13506555515/job/37870921408
The problem appeared here: #54487
Steps To Reproduce
- Add a prefix to the connection settings;
- Start dropping all tables;