создание базы данных из postgreSQL с помощью symfony

Я работаю с mapbender3 который разработан в symfony2 на моей локальной машине. Меня просят подключить приложение к удаленному серверу potgreSQL. Ниже приведена конфигурация в parameters.yml файл.

parameters:
database_driver:   pdo_pgsql
database_host:     192.168.3.100
database_port:     5434
database_name:     idc_core
database_path:     ~
database_user:     *******
database_password: *******

mailer_transport:  smtp
mailer_host:       localhost
mailer_user:       ~
mailer_password:   ~

Но когда я запускаю команду:

php app/console doctrine:database:create

Я продолжаю получать ошибку ниже

could not create database for connection named "idc_core"cound not find driver

Я использую сервер WAMP на Windows 7, и драйвер pdo_pgsql показывает активный и работает на моем локальном компьютере.

я проверил phpinfo () и это отображается pdo_Pgsql как включено, но когда я бегу php -m в командной строке, чтобы увидеть модули, скомпилированные в,

я могу видеть PDO, PDO_MySQL а также Pdo_Sqlite но нет pdo_Pgsql

11

Решение

Вы должны добавить pdo_Pgsql расширение в CLI Конфиг вашего PHP в

yourPhpDirectory / кли / php.ini

CLI использует этот конфиг для работы в командной строке, а не для apache. Это причина, почему phpinfo(); показывает вам pdo_Pgsql а также php -m не. Также в ОС Windows вам следует перезапустить инструмент командной строки, чтобы увидеть различия после любых изменений конфигурации.

3

Другие решения

Обязательно настройте 'default' ключ в app/config/database.php

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

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

Для Windows pgsql расширения должны поставляться предварительно загруженными с официальным дистрибутивом PHP. Просто отредактируйте свой php.ini и раскомментируйте строки 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. В конце существующей записи укажите полный путь к вашему каталогу postgres bin. Папка bin должна находиться в корне вашего установочного каталога postgres.
  5. Перезапустите все открытые командные строки или, чтобы быть уверенным, перезагрузите компьютер.

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

Источник: https://stackoverflow.com/a/25336292/1045444

3

  1. Включить оба расширения php_pdo_pgsql а также php_pgsql в php.ini (тот, что для CLI):

    extension=php_pdo_pgsql.dll
    extension=php_pgsql.dll
    
  2. Убедитесь, что «Порт» и «Учетные данные для входа» для удаленного сервера верны, проверив с помощью инструмента администрирования базы данных, такого как Adminer.

2
По вопросам рекламы [email protected]