python-3.x - 从 App Engine 的 python 代码将数据插入 Cloud SQL for MySQL
问题描述
我在 Google Cloud Platform 上的 App Engine 中有一个 Python 代码,它从 Firebase 获取数据并将其格式化为 tuples 列表,其中每一行指定数据库的一行。我想将此数据插入 Cloud SQL for MySQL 中。我已经生成了一个云服务帐户,并且还使用 sqlalchemy 将其连接到我的 Cloud SQL for MySQL,但我无法理解如何将行插入 Cloud SQL。
我已使用 Cloud SQL 网站上的以下代码并替换了所需的元素,但如何插入 Cloud SQL for MySQL?
db = sqlalchemy.create_engine(
# Equivalent URL:
# mysql+pymysql://<db_user>:<db_pass>@/<db_name>?unix_socket=/cloudsql/<cloud_sql_instance_name>
sqlalchemy.engine.url.URL(
drivername="mysql+pymysql",
username=db_user,
password=db_pass,
database=db_name,
query={"unix_socket": "/cloudsql/{}".format(cloud_sql_connection_name)},
),
# ... Specify additional properties here.
# ...
)
解决方案
其他答案没有解释如何插入,所以......
首先添加vpc 连接器。
然后您可能需要添加appengine 连接,无论您的 IP 是什么都添加为公共 IP(对我来说,这修复了Can't connect to MySQL server on 'localhost' ([Errno 2] No such file or directory
错误)。
然后插入:
metadata = MetaData(bind=engine)
your_table= Table('yourtable', metadata, autoload=True)
i = insert(your_table)
i = i.values({
"your_field": some_value
})
Session = sessionmaker(bind=engine)
session = Session()
session.execute(i)
session.commit()
推荐阅读
- blockchain - 以太坊 - 当我们使用智能合约时
- javascript - 计算属性未更新
- excel - 通过 powershell 将 OLEObject(Word/XLS/PDF 文档)嵌入 Excel 时,无法保存
- sql - SQL Server 列日期默认gatedate() 到脚本中的日期时间
- css - Less.js 中的保留名称
- python - 如何为特定的python版本安装python模块
- wordpress - Wordpress WP Admin 显示 404 错误,而其他页面工作正常
- osgi - Felix Scr 更改日志级别
- java - 如何从 Websphere 的标准输出日志中找出 Web 服务器模块使用的端口?
- laravel - 点击.. gmail(laravel)中的可疑链接错误