Laravel 5 + PostgreSQL: "Database [postgres] not configured." 错误
Laravel 5 + PostgreSQL: "Database [postgres] not configured." Error
我正在尝试开始使用 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 配置问题。有任何想法吗?我找了至少一个小时无果。
您必须在 .env
文件中输入您的配置。
您所做的配置只有在 .env
中尚未定义时才会加载
您需要使用 pgsql
而不是 postgres
。
DB_CONNECTION=pgsql
DB_HOST=localhost
DB_DATABASE=DB_NAME
DB_USERNAME=USER
DB_PASSWORD=PW
Laravel 有时会缓存您的配置。如果你 运行 在一切正常的情况下遇到这个问题,请尝试 运行ning
php artisan config:cache
我知道这是一个老问题,已经有了答案;然而,这里有一个小小的解释:
如果您在 config
目录中检查您的 database.php
,您会发现您的连接类型很少,包括 pgsql
。因此,密钥必须与 .env
文件中的 DB_CONNECTION
匹配。你绝对可以用 postgres
替换 pqsql
连接密钥,它会以同样的方式工作。
但是,我建议替换值 DB_CONNECTION,而不是修改配置。
DB_CONNECTION=pgsql
我正在尝试开始使用 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 配置问题。有任何想法吗?我找了至少一个小时无果。
您必须在 .env
文件中输入您的配置。
您所做的配置只有在 .env
您需要使用 pgsql
而不是 postgres
。
DB_CONNECTION=pgsql
DB_HOST=localhost
DB_DATABASE=DB_NAME
DB_USERNAME=USER
DB_PASSWORD=PW
Laravel 有时会缓存您的配置。如果你 运行 在一切正常的情况下遇到这个问题,请尝试 运行ning
php artisan config:cache
我知道这是一个老问题,已经有了答案;然而,这里有一个小小的解释:
如果您在 config
目录中检查您的 database.php
,您会发现您的连接类型很少,包括 pgsql
。因此,密钥必须与 .env
文件中的 DB_CONNECTION
匹配。你绝对可以用 postgres
替换 pqsql
连接密钥,它会以同样的方式工作。
但是,我建议替换值 DB_CONNECTION,而不是修改配置。
DB_CONNECTION=pgsql