我在我的谷歌应用引擎标准环境项目中使用 Flask SQLalchemy 来尝试连接到我的 GCP Postgresql 数据库。 根据 google docs,可以以这种格式创建 url
# postgres+pg8000://<db_user>:<db_pass>@/<db_name>?unix_socket=/cloudsql/<cloud_sql_instance_name>
下面是我的代码
from flask import Flask, request, jsonify
import constants
app = Flask(__name__)
# Database configuration from GCP postgres+pg8000
DB_URL = 'postgres+pg8000://{user}:{pw}@/{db}?unix_socket=/cloudsql/{instance_name}'.format(user=user,pw=password,db=dbname, instance_name=instance_name)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URL
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # silence the
deprecation warning
sqldb = SQLAlchemy(app)
这是我不断收到的错误:
File "/env/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 412, in connect return self.dbapi.connect(*cargs, **cparams) TypeError: connect() got an unexpected keyword argument 'unix_socket'
最佳答案
指定 unix 套接字的参数因您使用的驱动程序而异。根据pg8000 docs ,您需要使用 unix_sock
而不是 unix_socket
。
要在应用程序的上下文中看到这一点,您可以看一下 sample application .
关于python-3.x - Flask SQLalchemy 无法使用 Unix 套接字连接到 Google Cloud Postgresql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53773578/