我做了一个nodejs应用程序,现在我想把它部署到Google Cloud,但我无法让它成功连接到PostgresQL。我部署的应用和 Postgres 实例在同一项目上运行,我使用以下连接字符串:
pg://postgres:[password]@/[db_name]?host=/cloudsql/[Instance_name_of_Postgres]
但每次我尝试提出请求时,Knex 总是返回以下消息:
Knex:获取连接超时。游泳池可能已满。您是否错过了 .transacting(trx( 调用?
在我的开发机器中,我允许 IP 地址并使用该连接字符串与服务器 ip 连接到 Postgres 实例,但有任何问题。
您的连接字符串不正确,不是@/[db_name]?host
,而是@host/db_name
。
驱动程序支持的完整语法为:
postgres://username:password@host:port/database?ssl=false&application_name=name
&fallback_application_name=name&client_encoding=encoding