我正在尝试通过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迁移时,我得到一个’PDOException:找不到驱动器’。我正在使用WAMP,并且在Win8.1中。使用PostgreSQL作为数据库。
编辑: 已经尝试了一系列替代解决方案,但我仍然应该解决这个问题。该php.ini文件已在Apache,WAMP(来自php文件夹)和PostgreSQL中进行了检查。这extension_dir是正确的->extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"
php.ini
extension_dir
extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"
该extension=pdo_pgsql.dll和extension=pgsql.dll是注释。
extension=pdo_pgsql.dll
extension=pgsql.dll
完成PATH“系统变量”中的技巧,然后重新启动。没有机会。
PATH
感谢你目前的帮助。
这是我的司机php_pdo_driver.h和php_pdo.h从C:\Program Files (x86)\PostgreSQL\EnterpriseDB-ApachePHP\php\SDK\include\ext\pdo
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,共享“” –with-oci8-11g = C:\ php-sdk \ oracle \ x64 \ instantclient11 \ sdk,共享“” –enable-object-out-dir = ../obj/“” –enable-com-dotnet = shared“” –with-mcrypt = static“” –disable- static-analyze“” –with-pgo“
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,共享“” –with-oci8-11g = C:\ php-sdk \ oracle \ x64 \ instantclient11 \ sdk,共享“” –enable-object-out-dir = ../obj/“” –enable-com-dotnet = shared“” –with-mcrypt = static“” –disable- static-analyze“” –with-pgo“
确保在中配置'default'密钥app/config/database.php
'default'
app/config/database.php
对于postgres,这将是 'default' => 'postgres',
'default' => 'postgres',
如果收到[PDOException] could not find driver错误,请检查是否安装了正确的PHP扩展。你需要pdo_pgsql.so和pgsql.so安装并启用。有关如何执行此操作的说明因操作系统而异。
[PDOException] could not find driver
pdo_pgsql.so
pgsql.so
对于Windows,pgsql扩展应随官方PHP发行版一起预下载。只需编辑您的内容,php.ini然后取消注释extension=pdo_pgsql.so,extension=pgsql.so
pgsql
extension=pdo_pgsql.so
extension=pgsql.so
同样,在中php.ini,确保extension_dir将其设置为正确的目录。它应该是PHP安装目录中一个名为extensions或ext类似文件夹。
extensions
ext
最后,复制libpq.dll从C:\wamp\bin\php\php5.*\进入C:\wamp\bin\apache*\bin通过WampServer接口并重新启动所有服务。
libpq.dll
C:\wamp\bin\php\php5.*\
C:\wamp\bin\apache*\bin
如果仍然出现异常,则可能需要将postgres \bin目录添加到您的PATH:
\bin