【发布时间】:2021-04-04 13:41:51
【问题描述】:
我将 Laravel 8 与 Google App Engine Standard (GAE) 和 Google Cloud SQL 结合使用。 App Engine 和 Cloud SQL 之间的连接有效(在控制器中使用简单的 DB::query 进行了尝试),所以一切似乎都设置正确。
但是:我想在将 Laravel 应用程序部署到 GAE 后运行“php artisan migrate”。所以我尝试将以下内容添加到我的 composer.json:
"post-install-cmd": [
"@php artisan migrate --no-interaction --force",
"@php artisan cache:clear"
]
但是,当我部署应用程序时,运行迁移命令时会引发以下异常:
In Connection.php line 678:
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_s
chema.tables where table_schema = forge and table_name = migrations and tab
le_type = 'BASE TABLE')
如你所见,它使用 db "forge",这是 Laravel 中环境变量 "DB_DATABASE" 的默认后备值。因此,当 composer 运行安装后方法时,app.yaml 中设置的 env_variables 似乎没有加载,这也会导致缺少数据库主机。这就是“连接被拒绝”异常的原因。
您知道我该如何解决这个问题,以便在 composer 运行 migrate 命令时加载正确的环境变量?
【问题讨论】:
标签: php laravel google-app-engine google-cloud-sql