我正在尝试使用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有时会缓存您的配置。如果你碰到这个问题,一切看起来都没问题,试试运行
php artisan config:cache