I’m working on Laravel 5 with postgres as database. I’ve configured postgres 9.4 and pgAdmin III and these are working normally. When I try to run migrate it is giving me error:
[PDOException]
could not find driver
This is my database.php
'default' => 'pgsql',
'pgsql' => [ 'driver' => 'pgsql',
'host' => '127.0.0.1',
'database' => 'fms',
'username' => 'postgres',
'password' => 'root',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public', ],
Initially I though, it was due to configuration of postgres on windows 7 but I tried with plain php it works perfect
<?php
$host = "host=127.0.0.1";
$port = "port=5432";
$dbname = "dbname=fms";
$db = pg_connect( "$host $port $dbname user=postgres password=root" );
if(!$db){
echo "Error : Unable to open database\n";
} else {
echo "Opened database successfully\n";
}
?>
I’ve enabled php_pgsql and php_pdo_sql in wamp as well. I’m not sure how to fix this on laravel 5.
you gotta modify .env file , then go to config>database.php and change the default to pgsql, and also in all your models file you need to change $protected $connection= 'pgsql'.
As you said you already choosed Default Database as Postgres SQL
It is a must that you need to uncomment the pdo and postgres shared object in your php configuration settings
(php.ini)
i.e., You need to uncomment the following lines in your php.ini
Note :
Don't forget to stop and start your
apache
after doing this changes (orphp-fpm
if using that instead).I had the same problem with Laravel-WAMP-PostgreSql driver not found exception. I even successfully established direct connection to Postgre as you have, but with no luck with the "php artisan migrate" command.
After long research I found out that there are multiple php.ini files in which "extension=php_pdo_pgsql.dll" and "extension=php_pgsql.dll" are comented out.
The solution is (of course) to uncoment the extensions in the following files:
** You can leave off the "php.ini-development" and "php.ini-production" (don't need to uncoment these files).
Like @jeff said, this is probably caused by not setting
DB_CONNECTION=pgsql
in the.env
-file. The.env
-file has MySQL preconfigured, so you must edit this file.You have to make DB related changes in
and other settings in
If you are still getting error, then clear cache and config
It should work now!