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



Я работаю с mapbender3, который разработан в symfony2 на моей локальной машине. Меня просят подключить приложение к удаленному серверу potgreSQL. Ниже приведена конфигурация в параметрах .файл 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 server на windows 7, и драйвер pdo_pgsql показывает активный и запущенный на моем локальном компьютере.



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



Я вижу PDO, pdo_mysql и pdo_sqlite но не pdo_pgsql

660   3  

3 ответов:

Вы должны добавить расширение pdo_pgsql в конфигурацию CLI вашего php в

YourPhpDirectory/cli / php.ini

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

Обязательно настройте ключ '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

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

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

Comments

    Ничего не найдено.