#postgresql #laravel-5 #pdo
#postgresql #laravel-5 #pdo
Вопрос:
Я тщательно исследовал эту проблему и перепробовал все, что было предложено, но мне кажется, я что-то упустил. У меня есть проект laravel со следующей конфигурацией для .env:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=oamileage
DB_USERNAME=postgres
DB_PASSWORD=********
Я также раскомментировал следующую строку в php.ini:
;extension=pdo_pgsql -> extension=pdo_pgsql
При попытке использовать php artisan migrate я получаю следующую ошибку:
IlluminateDatabaseQueryException : could not find driver (SQL: select * from information_schema.tables where table_schema = public and table_name = migrations)
Примечание: у меня уже запущен и запущен pgsql для другого моего проекта (который не связан с laravel), и он работает без проблем. Я работаю в Windows.
Комментарии:
1. То, что вы где-то что-то откомментировали, не означает, что вы сделали это правильно (в нужном месте). Что
phpinfo()
говорит?PDO Postgresql
Загружен ли модуль? Если нет, то в верхней части страницы вы найдете нужное расположениеphp.ini
использованного.2. Да, PDO Postgresql загружается в соответствии с выводом phpinfo(). Я следил за phpinfo() для адреса php.ini, и я уверен, что все сделал правильно. У меня уже запущен postgresql для другого проекта, который не связан с laravel, просто он не работает на laravel.
3. PHP cli и Apache используют разные конфигурационные файлы. Проверьте, включено ли это также в версии cli.
Ответ №1:
Похоже, что у php cli есть другой конфигурационный файл, установленный в другом месте (путь можно найти в phpinfo ()). Я раскомментировал следующую строку, согласно madflow, и это сработало:
;extension=pdo_pgsql -> extension=pdo_pgsql
Ответ №2:
Вам просто нужно установить:
sudo apt-get install php7.2-pgsql
После предыдущей команды вы можете перенести свои модели в базу данных:
php artisan мигрирует