我正在尝试通过 Laravel 与 PostgreSQL 数据库连接以进行 php artisan 迁移,但似乎没有被定向,因为它正在读取 MySQL 的数据库名称。
以下是来自 database.php 的命令:
'connections' => array(
'sqlite' => array(
'driver' => 'sqlite',
'database' => __DIR__.'/../database/production.sqlite',
'prefix' => '',
),
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),
'pgsql' => array(
'driver' => 'pgsql',
'host' => 'localhost',
'database' => 'postgres',
'username' => 'postgres',
'password' => 'root',
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
),
'sqlsrv' => array(
'driver' => 'sqlsrv',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => '',
'prefix' => '',
),
),
如果我删除 MySQL 路径,我会得到:
[InvalidArgumentException]
Database [mysql] not configured.
编辑: 尝试执行 php artisan migrate 时,我得到一个“PDOException:找不到驱动程序”。我正在使用 WAMP,我在 Win8.1 中。使用 PostgreSQL 作为数据库。
编辑: 已经尝试了一系列替代解决方案,但我仍然应该解决这个问题。在 Apache、WAMP(来自 php 文件夹)和 PostgreSQL 中检查了 php.ini
文件。 extension_dir
是正确的 -> extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"
extension=pdo_pgsql.dll
和 extension=pgsql.dll
未注释。
完成“系统变量”中的 PATH
技巧并重新启动。没有机会。
感谢你目前的帮助。
这些是我的驱动程序 php_pdo_driver.h
& php_pdo.h
来自 C:\Program Files (x86)\PostgreSQL\EnterpriseDB-ApachePHP\php\SDK\include\ext\pdo
来自phpinfo的信息:
PHP 版本 5.5.12
编译器 MSVC11 (Visual C++ 2012) 配置命令 cscript /nologo configure.js “–enable-snapshot-build” “–disable-isapi” “–enable-debug-pack” “–without-mssql” “–没有-pdo-mssql” “–without-pi3web” “–with-pdo-oci=C:\php-sdk\oracle\x64\instantclient10\sdk,shared” “–with-oci8=C:\php -sdk\oracle\x64\instantclient10\sdk,shared” “–with-oci8-11g=C:\php-sdk\oracle\x64\instantclient11\sdk,shared” “–enable-object-out-dir= ../obj/” “–enable-com-dotnet=shared” “–with-mcrypt=static” “–disable-static-analyze” “–with-pgo”
原文由 Hyperion 发布,翻译遵循 CC BY-SA 4.0 许可协议
一定要配置
'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
设置为正确的目录。它应该是 PHP 安装目录中名为extensions
或ext
或类似名称的文件夹。最后将
libpq.dll
从C:\wamp\bin\php\php5.*\
复制到C:\wamp\bin\apache*\bin
并通过WampServer接口重启所有服务。如果您仍然遇到异常,您可能需要将 postgres
\bin
目录添加到您的PATH
:PATH
条目。这应该有望解决任何问题。有关更多信息,请参阅: