PHP 7.3.1 Laravel SQLSRV не может заполнить базу данных

Попытка заполнить базу данных с помощью laravel php artisan migrate:fresh --seed; однако он терпит неудачу с не удалось найти драйвер. Драйвера установлены, и приложение без проблем взаимодействует с базой данных.

Системная информация.

База данных: MSSQL с использованием драйверов SQLSRV

ОС: Виндовс 10

PHP: 7.3.1

Апач 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

РЕДАКТИРОВАТЬ 1:
Доказательство того, что SQLSRV установлен правильно. Также все обращения к базе данных из Интернета обрабатываются корректно. PHP CLI в переменных среды устанавливается в ту же папку php, которая используется для Интернета, поэтому они должны иметь одинаковые расширения. phpinfo() pdo-драйверы

EDIT2: добавлен фрагмент database.php

'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,
    ],

],

person A.A.    schedule 22.04.2019    source источник
comment
Драйвера установлены - похоже, что нет... Попробуйте подключиться с помощью обычный php и посмотрим, что получится   -  person Tarasovych    schedule 23.04.2019
comment
См. правку выше   -  person A.A.    schedule 23.04.2019
comment
php artisan config:cache, php artisan config:clear - что-нибудь помогло?   -  person Tarasovych    schedule 23.04.2019
comment
Вы пробовали PHP 7.2 или более раннюю версию? Тот же результат?   -  person Tarasovych    schedule 23.04.2019
comment
Пробовал php artisan config:cache, php artisan config:clear не работает. Позвольте мне попробовать перейти на php 7.2 и посмотреть   -  person A.A.    schedule 23.04.2019
comment
they should share same extensions - известные последние слова. Дважды проверьте с помощью php -i в CLI. Как выглядит ваш конфиг config/database.php, правильный ли там драйвер и т.д.?   -  person Don't Panic    schedule 23.04.2019
comment
Добавлен файл database.php в вопрос. php -i не показывает установленный pdo_sqlsrv. Также я могу запустить команду, добавив маршрут Route::get('/test', function () {Artisan::call('migrate:refresh --seed');}); и посетив /test из Интернета. Так что теперь я почти уверен, что проблема связана с php cli, но кажется, что у wamp есть только один файл php.ini.   -  person A.A.    schedule 23.04.2019
comment
Вероятно, cli и fpm находятся в разных каталогах.   -  person Tarasovych    schedule 24.04.2019
comment
Бинго - проблема именно в том, о чем вам говорит Laravel, и вы только что подтвердили, проверив CLI phpinfo - драйвер не установлен в вашем PHP CLI. Этот вопрос показывает, как найти ваш ini-файл CLI.   -  person Don't Panic    schedule 24.04.2019
comment
Ладно, очень странно. Когда я запускаю php -i | find /i "Configuration File", я получаю Configuration File (php.ini) Path => C:\WINDOWS Loaded Configuration File => (none)   -  person A.A.    schedule 25.04.2019


Ответы (1)


Что-то не так с установкой WAMP и Composer. Ошибка была исправлена ​​после полного удаления WAMP и композитора, а также удаления всех связанных переменных env. И переустанавливать их с нуля.

person A.A.    schedule 08.08.2019