Подтвердить что ты не робот

Laravel 5 с Postgres SQL

Im работает над Laravel 5 с postgres как базой данных. Ive настроил postgres 9.4 и pgAdmin III, и они работают нормально. Когда я пытаюсь выполнить миграцию, он дает мне ошибку:

[PDOException]
не удалось найти драйвер

Это моя database.php

'default' => 'pgsql',

'pgsql' => [            'driver'   => 'pgsql',          
                        'host'     => '127.0.0.1',          
                        'database' => 'fms',            
                        'username' => 'postgres',           
                        'password' => 'root',           
                        'charset'  => 'utf8',           
                        'prefix'   => '',           
                        'schema'   => 'public',         ],

Изначально, хотя это было связано с настройкой postgres на windows 7, но я пробовал с простым php, он отлично работает

<?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";
   }
?>

Ive включил php_pgsql и php_pdo_sql в wamp. Я не уверен, как исправить это на laravel 5.

4b9b3361

Ответ 1

Как вы уже сказали, вы уже выбрали базу данных по умолчанию как Postgres SQL

'default' => 'pgsql',

Необходимо, чтобы вы раскомментировали общий объект pdo и postgres в настройках конфигурации php (php.ini)

i.e. Вам нужно раскомментировать следующие строки в php.ini

extension=pdo_pgsql.so
extension=pgsql.so

Примечание:

Не забудьте остановить и запустить apache после выполнения этих изменений.

Ответ 2

У меня была та же проблема, что и драйвер Laravel-WAMP-PostgreSql не найден. Я даже успешно установил прямое соединение с Postgre, как и у вас, но не повезло с командой "php artisan migrate".

После долгих исследований выяснилось, что есть несколько файлов php.ini, в которых "extension = php_pdo_pgsql.dll" и "extension = php_pgsql.dll" достойны внимания.

Решение (конечно), чтобы не допустить расширения в следующих файлах:

  • ~/WAMP/бен/PHP/php5.5. */Php.ini
  • ~/WAMP/бен/PHP/php5.5. */PhpForApache
  • ~/WAMP/бен/PHP/php5.5. */Php.ini.install
  • ~/wamp/bin/php/php5.5. */php.ini-development
  • ~/WAMP/бен/PHP/php5.5. */Php.ini-производство и
  • ~/WAMP/бен/Apache/apache2.4.9/php.ini

** Вы можете оставить "php.ini-development" и "php.ini-production" (не нужно их не выполнять).

Ответ 3

вам нужно изменить файл .env, затем перейдите в config > database.php и измените значение по умолчанию на pgsql, а также во всех файлах ваших моделей вам нужно изменить $protected $connection = 'pgsql'.

Ответ 4

Как и @jeff, это, вероятно, вызвано не установкой DB_CONNECTION=pgsql в .env -file. Файл .env имеет предварительно сконфигурированный MySQL, поэтому вы должны редактировать этот файл.