php - 部署到灵活的 PHP App Engine 时访问 Cloud SQL

标签 php mysql symfony google-app-engine doctrine

我已经能够按照example here将示例Symfony 3应用程序部署到Google AppEngine灵活的PHP应用程序。然后,我将 CloudSQL API 添加到项目和 app.yaml 中的条目,因此当我通过 SSH 连接到实例时,我可以在 /cloudsql/ 中看到 MySQL 套接字。然后,我将 Doctrine 包添加到 Symfony 项目中,设置了几个模型等,在本地测试成功,并尝试将应用程序重新部署到 Google。

当部署进程运行 Composer 时,它会运行 composer.json 中定义的 symfony-scripts 条目。其中一些例程显然需要访问数据库,但这失败了。我从 clearCache 脚本中收到 驱动程序中发生异常:SQLSTATE[HY000] [2002] No such file or directory 错误。如果我从 composer.json 中删除该条目并重试,我会从下一个脚本中收到相同的错误。

我开始认为在应用程序部署过程中可能没有配置连接到数据库的套接字。有没有人尝试过做类似的事情并让它发挥作用?

最佳答案

回答我自己的问题...

Why does a composer update need access to the database

在我的 app/config/config.yml 中的 doctrine dbal 下添加 server_version: 5.7 修复了此问题。在 composer 安装 期间,它不再尝试连接到数据库,并且应用程序现在已部署。

关于php - 部署到灵活的 PHP App Engine 时访问 Cloud SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47180799/

相关文章:

php - 使用 codeigniter 在搜索表单中搜索后无法从数据库中获取行数据

php - 根据 empid wise 在 Mysql 中获取最高的 Sal 行

php - 如何在数组中创建 href 链接

doctrine-orm - 嵌入表单集合错误 : Could not determine access type for property

php - Symfony 3 - 路由不包括特定路径的开头(url)

php - 在php中添加一个删除按钮

php - YII、MS Access 如何一起使用?

php - 从文本中过滤坏词

python - 正确的 Django-ORM 中的 latin-1 编码的 UTF-8

php - 通过 formFactory 选项传递用户