我试图通过laravel与postgresql数据库连接,以便进行php artisan 迁移,但似乎没有定向,因为它正在读取mysql的数据库名称.

以下是来自database ase.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.


EDIT: When trying to do php artisan migrate I get a 'PDOException: could not find driver'. I'm using WAMP and I'm in Win8.1. Using PostgreSQL as database.


EDIT: Have experimented a series of alternative solutions but I'm still ought to get this solved. The php.ini file was checked in Apache, WAMP (from php folder) and PostgreSQL. The extension_dir is correct as it being -> extension_dir = "c:/wamp/bin/php/php5.5.12/ext/"

extension=pdo_pgsql.dllextension=pgsql.dll是未注释的.

在"系统变量"中完成PATH个技巧并重新启动.不可能.

谢谢你到目前为止的帮助.

这些是我的司机php_pdo_driver.h&php_pdo.hC:\Program Files (x86)\PostgreSQL\EnterpriseDB-ApachePHP\php\SDK\include\ext\pdo

来自phpinfo的信息:

PHP版本5.5.12

编译器MSVC11(Visual C++ 2012)配置命令cScript / NCORO

推荐答案

请务必在app/config/database.php中配置'default'

对于Postgres来说,这将是'default' => 'postgres',

如果收到[PDOException] could not find driver错误,请判断是否安装了正确的PHP扩展.您需要安装并启用pdo_pgsql.sopgsql.so.有关如何执行此操作的说明因操作系统而异.

对于Windows,pgsql个扩展应该随官方PHP发行版一起预先下载.只需编辑您的php.ini并取消对第extension=pdo_pgsql.soextension=pgsql.so行的注释

此外,在php.ini中,请确保将extension_dir设置为正确的目录.它应该是PHP安装目录中名为extensionsext或类似的文件夹.

最后,将libpq.dllC:\wamp\bin\php\php5.*\复制到C:\wamp\bin\apache*\bin,并通过WampServer接口重新启动所有服务.

如果仍然出现异常,您可能需要将postgres \bin目录添加到PATH:

  1. System Properties -> Advanced tab -> Environment Variables
  2. 在窗口下半部分的"系统变量"组中,滚动并找到PATH个条目.
  3. 将其选中,然后单击编辑
  4. 在现有条目的末尾,放置Postgres bin目录的完整路径.bin文件夹应该位于Postgres安装目录的根目录中.
  5. 重新启动所有打开的命令提示符,或者为了确定,请重新启动计算机.

这有望解决任何问题.有关详细信息,请参阅:

Php相关问答推荐

如何使用属性#[Embedded]嵌入带有规则的对象集合?

dockerized laravel服务器拒绝POST请求

Laravel迁移返回SQL错误,但SQL有效且工作正常

如何在Woocommerce中禁用机器人添加到推车?

使用php创建表格和插入数据

如何使用php一次更新两个数据库中的MySQL表

从AJAX响应中获取一个未定义的html

如果为布尔值,则 for each 循环重新启动

如何在Laravel Model中自定义多个日期属性的日期格式?

基于服务器的不同地平线配置

如何将WooCommerce产品从一个产品复制到另一个产品S

Azure应用程序无法访问共享文件夹

如何在 Phpunit 的静态提供程序中创建测试双打?

由于 PHP 版本不受支持,如何终止 PHP 脚本?

Shopware 6 AuthControllerDecorator已弃用

使用来自 PHP 表单的数据更新 xml 命名空间

计算组合指数

输出每个可能的产品选项

Laravel 模型将日期保存为空

为什么 ECDSA 384 签名验证在 GO 中失败,但在 PHP 中却没有?