Laravel: Ошибка : не удалось найти драйвер в PostgreSQL

Я пытаюсь подключиться к базе данных PostgreSQL через Laravel, чтобы выполнить миграцию php-artisan, но не кажется, что она направлена, поскольку она считывает имя базы данных MySQL.

Вот команды из базы данных.php:

'connections' => array( 'sqlite' => array( 'driver' => 'sqlite', 'database' => __DIR__.'/../database/production.sqlite', 'prefix' => '', ), 'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'database', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), 'pgsql' => array( 'driver' => 'pgsql', 'host' => 'localhost', 'database' => 'postgres', 'username' => 'postgres', 'password' => 'root', 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', ), 'sqlsrv' => array( 'driver' => 'sqlsrv', 'host' => 'localhost', 'database' => 'database', 'username' => 'root', 'password' => '', 'prefix' => '', ), ), 

Если я удалю пути MySQL, я получу:

 [InvalidArgumentException] Database [mysql] not configured. 


EDIT: При попытке выполнить миграцию php artisan я получаю «PDOException: не могу найти драйвер». Я использую WAMP, и я в Win8.1. Использование PostgreSQL в качестве базы данных.


EDIT: экспериментировали с рядом альтернативных решений, но я все равно должен решить эту проблему. Файл php.ini был проверен в Apache, WAMP (из папки php) и PostgreSQL. extension_dir является правильным, поскольку это -> extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"

extension=pdo_pgsql.dll и extension=pgsql.dll .

Сделал трюк PATH в «Системных переменных» и перезагрузился. Без шансов.

Спасибо за помощь до сих пор.

Это мои драйверы php_pdo_driver.h и php_pdo.h из C:\Program Files (x86)\PostgreSQL\EnterpriseDB-ApachePHP\php\SDK\include\ext\pdo

Информация от phpinfo:

Версия PHP 5.5.12

Компилятор MSVC11 (Visual C ++ 2012) Настроить команду cscript / nologo configure.js "–enable-snapshot-build" "–disable-isapi" "–enable-debug-pack" "–without-mssql" "- без-pdo-mssql "" –without-pi3web "" –with-pdo-oci = C: \ php-sdk \ oracle \ x64 \ instantclient10 \ sdk, shared "" –with-oci8 = C: \ php -sdk \ oracle \ x64 \ instantclient10 \ sdk, shared "" –with-oci8-11g = C: \ php-sdk \ oracle \ x64 \ instantclient11 \ sdk, shared "" –enable-object-out-dir = ../obj/ "" –enable-com-dotnet = shared "" –with-mcrypt = static "" –disable-static-analysis "" –with-pgo "

Не забудьте настроить 'default' ключ в app/config/database.php

Для postgres это будет 'default' => 'postgres',

Если вы получаете [PDOException] could not find driver ошибку [PDOException] could not find driver , проверьте, установлены ли у вас правильные расширения PHP. Вам необходимо установить и включить pdo_pgsql.so и pgsql.so . Инструкции о том, как это сделать, различаются между операционными системами.

Для Windows расширения pgsql должны быть предварительно загружены официальным дистрибутивом PHP. Просто отредактируйте свой php.ini и раскомментируйте extension=pdo_pgsql.so линий extension=pdo_pgsql.so и extension=pgsql.so

Кроме того, в php.ini убедитесь, что extension_dir установлен в соответствующий каталог. Это должна быть папка с именем extensions или ext или аналогичная внутри вашего каталога установки PHP.

Наконец, скопируйте libpq.dll из C:\wamp\bin\php\php5.*\ C:\wamp\bin\apache*\bin и перезапустите все службы через интерфейс WampServer.

Если вы все еще получаете исключение, вам может потребоваться добавить каталог postgres \bin в ваш PATH :

  1. Свойства системы -> вкладка «Дополнительно» -> переменные среды
  2. В группе «Системные переменные» в нижней половине окна прокрутите страницу и найдите запись PATH .
  3. Выберите его и нажмите «Изменить».
  4. В конце существующей записи поместите полный путь в ваш каталог bin postgres. Папка bin должна быть расположена в корневом каталоге установки postgres.
  5. Перезапустите все открытые командной строки или, если нужно, перезапустите компьютер.

Это должно с надеждой решить любые проблемы. Для получения дополнительной информации см .:

Для PDOException: could not find driver для MySQL , и если это ОС на базе Debian ,

 sudo apt-get -y install php5-mysql 

Я понимаю, что это старый вопрос, но я нашел его в поиске Google, поэтому я собираюсь идти дальше и отвечать на случай, если кто-то еще столкнется с этим. Я нахожусь на Mac и имею ту же проблему, но решил ее, используя HomeBrew . После того, как вы его установили, вы можете просто запустить эту команду:

 brew install php56-pdo-pgsql 

И замените 56 любой версией PHP, которую вы используете, без десятичной точки.

Для PHP 7 в Ubuntu вы также можете:

 sudo apt-get install php7.0-pgsql 

Итак, теперь вы можете не раскомментировать строки в php.ini

UPD: У меня такая же ошибка, поэтому проблема не в драйвере. Я изменил свой database.ini , но каждый раз, когда я видел ошибку. И я меняю конфигурацию базы данных в .env и ошибки ушли.

Я была такая же проблема. Это то, что сработало для меня.

Есть 2 файла php.ini:

  • C: \ WAMP \ Bin \ Apache \ apache2.4.9 \ Bin
  • C: \ WAMP \ Bin \ PHP \ php5.5.12

ПРИМЕЧАНИЕ. Это использование моей версии PHP и Apache, изменения в соответствии с вашими.

Файл php.ini, расположенный в обеих папках, – это то, что вам нужно обновить, расширения:

  • расширение = php_pdo_pgsql.dll
  • расширение = php_pgsql.dll

Это то, что вам нужно раскомментировать (удалить символ;).

Перезапустите Wamp и командную строку.

Надеюсь, это сработает для вас :).

Это сработало для меня:

$ sudo apt-get install php-gd php-mysql

Для тех, кто хочет использовать Postgresql в OpenSuse (и co), попробуйте следующее:

 zypper --no-refresh in php5-pgsql 

установите значение по умолчанию 'default' => 'sqlite';

check – http://three.laravel.com/docs/database/config

и это – настройка PostgreSQL с Laravel в MAMP

Старая нить я знаю, но я потерял пару часов своей жизни с этим. Вам также необходимо установить информацию о БД в файл .env. Вам здесь не нужно указывать драйвер, потому что используется значение по умолчанию, указанное в файле database.php (я думаю). Я боролся, потому что в DB_CONNECTION=mysql был DB_CONNECTION=mysql и я использовал pgsql.

Это сработало для меня:

 $ sudo apt-get -y install php5.6-pgsql $ sudo service apache2 restart 

Я работаю с 32-битным Ubuntu 14

В моем случае у меня было две версии PHP. Так что все, что мне нужно было сделать, это использовать

$ /opt/lampp/bin/php artisan serve вместо

$ php artisan serve

 sudo apt-get install php7.1-pgsql