使用PostgreSQL将Laravel连接到GAE Cloud SQL数据库

时间:2019-02-03 08:53:30

标签: laravel postgresql google-app-engine google-cloud-platform

我正在将新应用程序部署到Google App Engine Flex环境。该应用程序由Laravel提供支持。

我能够连接到本地计算机上的数据库,但是,一旦部署应用程序,我将无法连接到数据库。

我需要在app.yaml文件中包含哪些信息才能连接到数据库?我是否需要其他文件中的其他信息?

public getData(): void { this.state.items }

这是我的.ENV文件的内容,允许我在本地连接

"message": "SQLSTATE[08006] [7] could not connect to server: Connection refused\n\tIs the server running on host \"localhost\" (::1) and accepting\n\tTCP/IP connections on port 5432?\ncould not connect to server: Connection refused\n\tIs the server running on host \"localhost\" (127.0.0.1) and accepting\n\tTCP/IP connections on port 5432? (SQL: select * from \"users\" where \"email\" = mitchell@efficialtec.com and \"users\".\"deleted_at\" is null limit 1)",

这是我的app.yaml文件的内容:

APP_ENV=development
APP_KEY=base64:B0G3Yr82fWO7xw8LrvcOC19DGUAEd32loJlPHCfP2sg=
APP_DEBUG=true

LOG_CHANNEL=stack


DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_POST=5432
DB_DATABASE=DATABASE
DB_USERNAME=USERNAME
DB_PASSWORD=PASSWORD
DB_SOCKET: "/cloudsql/CONNECTION_NAME"

在此方面的任何帮助将不胜感激,我已经在Google上搜索了将近一个星期,但仍未找到答案!

1 个答案:

答案 0 :(得分:0)

默认情况下,Laravel在pgsql连接下没有DB_SOCKET。 因此,为了从应用程序引擎连接到云SQL连接,您的环境显示如下:

DB_CONNECTION=pgsql
DB_HOST=/cloudsql/CONNECTION_NAME
DB_DATABASE=DATABASE
DB_USERNAME=USERNAME
DB_PASSWORD=PASSWORD

也请不要在数据库环境变量中包含DB_PORT。