Trying to seed the database using laravel php artisan migrate:fresh --seed
; however, it fails with a couldn't find driver.
Driver's are installed and application communicates with database with no problems.
System information.
Database: MSSQL using SQLSRV Drivers
OS: Windows 10
PHP: 7.3.1
Apache 2.4.37
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata> php artisan migrate:fresh --seed -v
Illuminate\Database\QueryException : could not find driver (SQL: EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all";)
at C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connection.php:664
660| // If an exception occurs when attempting to run a query, we'll format the error
661| // message to include the bindings with SQL, which will make this exception a
662| // lot more helpful to the developer instead of just the database's errors.
663| catch (Exception $e) {
> 664| throw new QueryException(
665| $query, $this->prepareBindings($bindings), $e
666| );
667| }
668|
Exception trace:
1 PDOException::("could not find driver")
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
2 PDO::__construct("dblib:host=10.172.71.6:1433;dbname=lightcommercial;charset=utf8", "SS****", "SSS****", [])
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:70
3 Illuminate\Database\Connectors\Connector::createPdoConnection("dblib:host=10.172.71.6:1433;dbname=lightcommercial;charset=utf8", "SS****", "SS****", [])
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:46
4 Illuminate\Database\Connectors\Connector::createConnection("dblib:host=10.172.71.6:1433;dbname=lightcommercial;charset=utf8", [])
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connectors\SqlServerConnector.php:32
5 Illuminate\Database\Connectors\SqlServerConnector::connect()
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connectors\ConnectionFactory.php:182
6 Illuminate\Database\Connectors\ConnectionFactory::Illuminate\Database\Connectors\{closure}()
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connection.php:918
7 call_user_func(Object(Closure))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connection.php:918
8 Illuminate\Database\Connection::getPdo()
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connection.php:452
9 Illuminate\Database\Connection::Illuminate\Database\{closure}("EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all";", [])
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connection.php:657
10 Illuminate\Database\Connection::runQueryCallback("EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all";", [], Object(Closure))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connection.php:624
11 Illuminate\Database\Connection::run("EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all";", [], Object(Closure))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Connection.php:459
12 Illuminate\Database\Connection::statement("EXEC sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all";")
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Schema\Builder.php:253
13 Illuminate\Database\Schema\Builder::disableForeignKeyConstraints()
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Schema\SqlServerBuilder.php:14
14 Illuminate\Database\Schema\SqlServerBuilder::dropAllTables()
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Console\Migrations\FreshCommand.php:73
15 Illuminate\Database\Console\Migrations\FreshCommand::dropAllTables()
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Database\Console\Migrations\FreshCommand.php:46
16 Illuminate\Database\Console\Migrations\FreshCommand::handle()
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:32
17 call_user_func_array([])
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:32
18 Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:90
19 Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Object(Closure))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php:34
20 Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), [])
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Container\Container.php:580
21 Illuminate\Container\Container::call()
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Console\Command.php:183
22 Illuminate\Console\Command::execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\symfony\console\Command\Command.php:255
23 Symfony\Component\Console\Command\Command::run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Console\Command.php:170
24 Illuminate\Console\Command::run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\symfony\console\Application.php:908
25 Symfony\Component\Console\Application::doRunCommand(Object(Illuminate\Database\Console\Migrations\FreshCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\symfony\console\Application.php:269
26 Symfony\Component\Console\Application::doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\symfony\console\Application.php:145
27 Symfony\Component\Console\Application::run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Console\Application.php:90
28 Illuminate\Console\Application::run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php:122
29 Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
C:\wamp64\www\serialplatesitelaravel\laravel\serialdata\artisan:37
EDIT 1:
Proof that SQLSRV is installed correctly. Also all calls to the database from the web are handled correctly. PHP CLI in environment variables is set to the same php folder used for the web, so they should share same extensions.
EDIT2: Added database.php snippet
'default' => env('DB_CONNECTION', 'sqlsrv'),
/*
|--------------------------------------------------------------------------
| Database Connections
|--------------------------------------------------------------------------
|
| Here are each of the database connections setup for your application.
| Of course, examples of configuring each database platform that is
| supported by Laravel is shown below to make development simple.
|
|
| All database work in Laravel is done through the PHP PDO facilities
| so make sure you have the driver for your particular database of
| choice installed on your machine before you begin development.
|
*/
'connections' => [
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', '10.172.71.6'),
'port' => env('DB_PORT', '1433'),
'database' => env('DB_DATABASE', 'lightcommercial'),
'username' => env('DB_USERNAME', 'LCGROUP'),
'password' => env('DB_PASSWORD', 'LCG4w3b@pp!'),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
],
],
There was something wrong with the WAMP installation and Composer. The error was fixed after completely uninstalling WAMP & composer as well as deleting all related env vars. And reinstalling them from scratch.