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

时间:2018-05-02 14:22:27

标签: mysql google-app-engine session authentication webapp2

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

我编写了所有转换例程,将所有当前数据实体表从数据存储区复制到mysql,而我的存储库中的代码需要重写以与mysql而不是数据存储区进行交互。

除了一个密钥表之外,几乎所有当前数据存储区实体都将ndb.Model子类化,我们的用户实体是webapp2_extras.appengine.auth.models.User的子类。

从中进行子类化会在幕后做很多好事,例如设置Unique和UserToken条目以及设置和处理会话,在用户登录时设置它们并在用户注销时销毁它们

既然用户表将存在于mysql中,那么数据存储所提供的所有这些细节都需要单独实现,我不知道从哪里开始。

实现这一目标的最佳方式是什么?

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

如果您需要任何进一步的细节,我们将非常感谢您的帮助或建议。

1 个答案:

答案 0 :(得分:0)

搜索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 User类进行交互,并允许我返回webapp2和GAE所需的参数来完成剩下的工作。