更新
Google Cloud SQL现在支持直接访问,因此可以使用MySQLdb
方言。建议通过mysql方言进行连接的URL格式为:
mysql+mysqldb://root@/<dbname>?unix_socket=/cloudsql/<projectid>:<instancename>
mysql+gaerdbms
已经自版本1.0起被SQLAlchemy弃用。
为了方便其他用户,我将保留原始回答。
对于那些以后访问这个问题的人(不想阅读所有评论的人),SQLAlchemy现在支持Google Cloud SQL,版本为0.7.8,使用连接字符串/方言(参见:docs):
mysql+gaerdbms:///<dbname>
E.g.:
create_engine('mysql+gaerdbms:///mydb', connect_args={"instance":"myinstance"})
我提出了对
mysql+gaerdmbs://
方言的
更新,以支持从非Google App Engine生产实例(例如您的开发工作站)连接到Cloud SQL时使用Google Cloud SQL APIs (
rdbms_apiproxy
和
rdbms_googleapi
)。此更改还将略微修改连接字符串,包括项目和实例作为字符串的一部分,并且不需要通过
connect_args
单独传递。
mysql+gaerdbms:///<dbname>?instance=<project:instance>
这也将使使用Flask-SQLAlchemy或其他扩展与Cloud SQL更加容易,其中您不需要显式地进行
create_engine()
调用。
如果您在从开发工作站连接到Google Cloud SQL方面遇到问题,您可能需要查看我在此处的答案 -
https://dev59.com/mGzXa4cB1Zd3GeqPZvco#14287158。