**操作系统:**Ubuntu 16.10
**服务器:**Nginx
**数据库:**PostgreSQL 9.5.4
Laravel 5.4
尝试执行数据库迁移,但php artisan migrate
抛出以下错误:
[Illuminate\Database\QueryException]找不到驱动程序:(SQL select * from information_schema.tables,其中tables_schema =用户名,table_name =迁移)
接着是第二条消息
[PDOException]
找不到驱动程序
我做了以下工作:
1.已验证是否安装了php-pgsql的最新版本
1.取消注解/etc/php/7.0/fpm/php. ini中与php_pdo_pgsql. dll有关的行
1.多次重新启动posgtresql和nginx
目前,当我运行php -i
时,PDO部分的输出是
PDO支持=>启用
PDO drivers => pgsql
pdo_pgsql节将产生
PostgreSQL(libpq)版本=>9.5.4
模块版本=>7.0.15-0ubuntu0.16.10.4
并且pgsql部分返回
PostgreSQL(libpq)版本= 9.5.4
PostgreSQL(libpq)=> PostgreSQL 9.5.4 on x86_64-pc-linux-gnu,compiled by gcc(Ubuntu 6.1.1-11ubuntu12)6.1.1 20160805,64-bit Multibyte character support => enabled
SSL支持=>已启用
活动持久链接=> 0
活动链接=> 0
但尽管如此,还是得到了同样的错误。我认为这可能是权限问题,但是以root或www-data身份运行该命令都有相同的结果。
5条答案
按热度按时间vfhzx4xs1#
安装PHP pdo
字符串
j2qf4p5b2#
我也经历过同样的情况,按以下顺序做:
1.安装php的postgre扩展,它们是:
php-(YOUR_VERSION)-pgsql
和php-pgsql
。1.在php.ini文件中启用pgsql扩展,基本上,取消注解扩展。
1.重启Apache服务器(或nginx)。
1.使用phpinfo()或任何类似工具检查扩展是否已启用。
1.为PostgreSQL服务器中的postgres用户(例如)设置密码,这是非常重要的一步。
登录到psql shell:
字符串
输入密码并确认。
现在,设置.env文件并重试。
6mw9ycah3#
你需要定义你的.env文件
在.env文件中,您需要指定正在使用哪个数据库(MySQL、SQLite、Postgres),并指定您的DB用户名和密码
字符串
在进行迁移时,运行这些命令总是很好的
型
bnl4lu3b4#
我的问题通过简单安装
php-pgsql
解决我用的是PHP v8.1所以我跑了。
sudo apt-get install php8.1-pgsql
个希望这对你有帮助。
pxiryf3j5#
已解决:
在此方案中,请确保已运行
第一个月
我以为我在每个关键步骤都做到了这一点,但是再次运行这两个命令允许我进行迁移并使站点正常运行。谢谢lewis4u的帮助。