создание базы данных из 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
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:
- Свойства системы - > вкладка Дополнительно - > Переменные среды
- в Группа "системные переменные" в нижней половине окна, прокрутите страницу и найдите запись
PATH.- выберите его и нажмите кнопку Изменить
- в конце существующей записи укажите полный путь к каталогу postgres bin. Папка bin должна находиться в корневом каталоге установки postgres.
- перезагрузите все открытые командные запросы или, чтобы быть уверенным, перезагрузите компьютер.
Это должно, надеюсь, решить любые проблемы. За дополнительной информацией смотрите:
Включите оба расширения
php_pdo_pgsqlиphp_pgsqlвphp.ini(один для CLI):extension=php_pdo_pgsql.dll extension=php_pgsql.dllУбедитесь, что "порт" и "учетные данные для входа" для удаленного сервера являются правильными, протестировав их с помощью инструмента администрирования базы данных, например Adminer.
Comments