Laravel 5 + PostgreSQL:“未配置数据库 [postgres]。”错误

Posted

技术标签:

【中文标题】Laravel 5 + PostgreSQL:“未配置数据库 [postgres]。”错误【英文标题】:Laravel 5 + PostgreSQL: "Database [postgres] not configured." Error 【发布时间】:2016-05-08 19:10:18 【问题描述】:

我正在尝试开始使用 Laravel + PostgreSQL,并一直关注 database tutorial。

很遗憾,更新数据库配置文件,运行php artisan migrate后,出现如下错误:

  [InvalidArgumentException]
  Database [postgres] not configured.

让我疑惑的是,我没有在配置中指定“postgres”数据库,而是我通过cPanel设置的另一个数据库,比如“example_database”。


这是我的/config/database.php 配置的一些相关部分:

'default' => env('DB_CONNECTION', 'postgres')

在同一文件的connections数组内:

'pgsql' => [
        'driver'   => 'pgsql',
        'host'     => env('DB_HOST', 'localhost'),
        'database' => env('DB_DATABASE', 'example_database'), // This seems to be ignored
        'username' => env('DB_USERNAME', 'example_username'),
        'password' => env('DB_PASSWORD', 'example_password'),
        'charset'  => 'utf8',
        'prefix'   => '',
        'schema'   => 'public'
    ],

我使用的实际数据库凭据在我的 SQL Workbench 客户端上运行良好,所以这似乎是 Laravel 配置问题。有任何想法吗?我已经搜索了至少一个小时无济于事。

【问题讨论】:

【参考方案1】:

您必须在.env 文件中输入您的配置。

只有在.env 中没有定义的情况下才会加载您所做的配置

您需要使用pgsql 而不是postgres

DB_CONNECTION=pgsql
DB_HOST=localhost
DB_DATABASE=DB_NAME
DB_USERNAME=USER
DB_PASSWORD=PW 

【讨论】:

感谢您的解释。我已经在 .env 文件中进行了更改,但错误是一样的。我还有什么遗漏的吗? @FranciscoH。我刚刚更新了我的答案。将postgress 重命名为pgsql 您是否也检查过 pdo postgress 驱动程序是否已正确安装和加载? "你需要使用 pgsql 而不是 postgres。"这是很难找到的信息!谢谢。 这个答案非常适合我。我在 Linux 机器上使用 ssh 和 homestead。【参考方案2】:

Laravel 有时会缓存你的配置。如果您在一切正常的情况下遇到此问题,请尝试运行

php artisan config:cache

【讨论】:

以上是关于Laravel 5 + PostgreSQL:“未配置数据库 [postgres]。”错误的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 未找到类“Illuminate\Html\HtmlServiceProvider”

辅助函数未加载 laravel 5 - 调用未定义函数

未找到 Laravel 视图 5.2

AngularJS + Laravel 5 请求返回未定义

Laravel 5.1 路线未定义

Laravel 5 密码重置电子邮件未发送