lui*_*c93 1 php postgresql heroku laravel
我正在尝试将 Laravel 应用程序部署到 heroku。我已经使用我的一个应用程序成功地做到了这一点,但是在这里我在运行命令 heroku run php artisan migrate 时收到以下错误:
In Connection.php line 664:
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from
information_schema.tables where table_schema = todolist and
table_name = migrations)
In Connector.php line 67:
SQLSTATE[HY000] [2002] Connection refused
Run Code Online (Sandbox Code Playgroud)
我已经检查过 database.php 和 .env 有匹配的配置:
.env:
DB_CONNECTION=pgsql
DB_HOST=foo.amazonaws.com
DB_PORT=5432
DB_DATABASE=database
DB_USERNAME=user
DB_PASSWORD=password
Run Code Online (Sandbox Code Playgroud)
数据库.php:
return [
'default' => env('DB_CONNECTION', 'pgsql'),
'connections' => [
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', 'foo.amazonaws.com'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'database'),
'username' => env('DB_USERNAME', 'user'),
'password' => env('DB_PASSWORD', 'password'),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
]
]
Run Code Online (Sandbox Code Playgroud)
我读过一些类似的帖子并尝试将 DB_HOST 从 127.0.0.1 更改为 localhost 但它没有用。
在我将 postgres 用于我的数据库后,数据库值由 heroku 给出。我在这里错过了什么吗?欢迎所有建议。
小智 5
.env 文件被 git 忽略,因此不会被推送到 Heroku。要解决您的问题,凭据应以与您拥有它们的方式相同的方式位于 database.php 文件中:
'pgsql' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', 'ec2-12-34-56-789.compute-1.amazonaws.com'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'dbXXXXXXXXXXXX'),
'username' => env('DB_USERNAME', 'XXXXXXXXXXXXXX'),
'password' => env('DB_PASSWORD', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
]
Run Code Online (Sandbox Code Playgroud)
密码应该是 64 个字符长,所以我想说可能会仔细检查这些值,然后再次推送更改。成功推送后,运行:
$ heroku run php artisan migrate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5019 次 |
| 最近记录: |