Google 应用引擎 - 将网站用户 table 从数据存储迁移到 mysql (CloudSQL)

Google app engine - migrating website user table from datastore to mysql (CloudSQL)

我们公司正在将 Google App Engine 网站的数据从 Google Cloud Datastore 迁移到 mysql(准确地说是 CloudSQL)

我已经编写了所有的转换例程来将所有当前数据实体 table 从数据存储复制到 mysql,我正处于我们 repos 中的代码需要重写以进行交互的地步使用 mysql 而不是数据存储。

几乎所有当前数据存储实体的子类 ndb.Model 除了一个键 table,我们的用户实体是 webapp2_extras.appengine.auth.models.User.

的子类

从这个子类化在幕后做了很多不错的事情,例如设置 Unique 和 UserToken 条目以及设置和处理会话,在用户登录时设置它们并在用户登录时销毁它们注销。

现在用户 table 将生活在 mysql datastore 提供的所有这些细节都需要单独实施,我不知道从哪里开始。

实现此目标的最佳方法是什么?

该站点使用 Google App Engine 标准环境,使用 Python 2.7 运行时和 webapp2 框架。我正在使用 SqlAlchemy 与后端的 mysql 实例进行交互。

如有任何帮助或建议,我们将不胜感激,如果您需要任何进一步的细节,请告诉我。

通过搜索 webapp2 文档,我找到了此信息。

http://webapp2.readthedocs.io/en/latest/tutorials/auth.html#login-with-sessions

我在 google SDK 中做了一些探索,以查看 webapp2_extras.appengine.auth.models.User 中相同的接口方法设置。

我创建了一个 AuthModel 接口,其中包含 webapp2 创建会话所需的基本属性,并且我实现了页面上描述的方法。这些方法调用 SqlAlchemy 查询,该查询将依次与我设置的 SqlAlchemy 用户 class 交互,并允许我 return webapp2 和 GAE 完成其余工作所需的参数。