Не удалось найти драйвер (исключение PDO с помощью Laravel)

#postgresql #laravel-5 #pdo

#postgresql #laravel-5 #pdo

Вопрос:

Я тщательно исследовал эту проблему и перепробовал все, что было предложено, но мне кажется, я что-то упустил. У меня есть проект laravel со следующей конфигурацией для .env:

 DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=oamileage
DB_USERNAME=postgres
DB_PASSWORD=********
 

Я также раскомментировал следующую строку в php.ini:

 ;extension=pdo_pgsql -> extension=pdo_pgsql
 

При попытке использовать php artisan migrate я получаю следующую ошибку:

 IlluminateDatabaseQueryException  : could not find driver (SQL: select * from information_schema.tables where table_schema = public and table_name = migrations)
 

Примечание: у меня уже запущен и запущен pgsql для другого моего проекта (который не связан с laravel), и он работает без проблем. Я работаю в Windows.

У меня установлены драйверы PDO, как показано здесь:

Комментарии:

1. То, что вы где-то что-то откомментировали, не означает, что вы сделали это правильно (в нужном месте). Что phpinfo() говорит? PDO Postgresql Загружен ли модуль? Если нет, то в верхней части страницы вы найдете нужное расположение php.ini использованного.

2. Да, PDO Postgresql загружается в соответствии с выводом phpinfo(). Я следил за phpinfo() для адреса php.ini, и я уверен, что все сделал правильно. У меня уже запущен postgresql для другого проекта, который не связан с laravel, просто он не работает на laravel.

3. PHP cli и Apache используют разные конфигурационные файлы. Проверьте, включено ли это также в версии cli.

Ответ №1:

Похоже, что у php cli есть другой конфигурационный файл, установленный в другом месте (путь можно найти в phpinfo ()). Я раскомментировал следующую строку, согласно madflow, и это сработало:

 ;extension=pdo_pgsql -> extension=pdo_pgsql
 

Ответ №2:

Вам просто нужно установить:

sudo apt-get install php7.2-pgsql

После предыдущей команды вы можете перенести свои модели в базу данных:

php artisan мигрирует