你们中的任何人都有 PostgREST 和 Cloud SQL 的经验吗?
我的 SQL 实例已准备好开放访问 (0.0.0.0/0),我可以使用云代理应用程序通过本地 PostGREST 访问它。
现在我想从同一个项目的一个实例中运行 Postgrest,但我找不到支持 Cloud SQL 格式的 Postgrest URI 格式,因为 Google SQL Cloud 只使用 unix 套接字,如/cloudsql/INSTANCE_CONNECTION_NAME
配置 1
db-uri = "postgres://postgres:password@/unix(/cloudsql/INSTANCE_CONNECTION_NAME)/mydatabase"
db-schema = "api"
jwt-secret = "OOcJ7VoSY1mXqod4MKtb9WCCwt9erJkRQ2tzYmLb4Xe="
db-anon-role = "web_anon"
server-port=3000
退货{"details":"could not translate host name \"unix(\" to address: Unknown host\n","code":"","message":"Database connection error"}
配置 2
db-uri = "postgres://postgres:password@/mydatabase?unix_socket=/cloudsql/INSTANCE_CONNECTION_NAME"
db-schema = "api"
jwt-secret = "OOcJ7VoSY1mXqod4MKtb9WCCwt9erJkRQ2tzYmLb4Xe="
db-anon-role = "web_anon"
server-port=3000
解析器拒绝问号
{"details":"invalid URI query parameter: \"unix_socket\"\n","code":"","message":"Database connection error"}
配置 3
db-uri = "postgres://postgres:password@/mydatabase"
db-schema = "api"
jwt-secret = "OOcJ7VoSY1mXqod4MKtb9WCCwt9erJkRQ2tzYmLb4Xe="
db-anon-role = "web_anon"
server-port=3000
server-unix-socket= "/cloudsql/INSTANCE_CONNECTION_NAME"
server-unix-socket
似乎只采用套接字锁定文件路径。喂它/cloudsql/INSTANCE_CONNECTION_NAME
尝试删除文件,如 `postgrest.exe: /cloudsql/INSTANCE_CONNECTION_NAME: DeleteFile "/cloudsql/INSTANCE_CONNECTION_NAME": invalid argument t (文件名、目录名或卷标语法不正确。)
文档
云 SQL 文档
PostgREST
- http://postgrest.org/en/v6.0/configuration.html
- https://github.com/PostgREST/postgrest/issues/1186
- https://github.com/PostgREST/postgrest/issues/169
环境
- PostgreSQL 版本:11
- PostgREST 版本:6.0.2
- 操作系统:Win10和Alpine