我们公司正在将我们的google app engine网站的数据从google云数据存储迁移到mysql(准确地说是cloudsql)
我已经编写了所有的转换例程,将当前所有的数据实体表从datastore复制到mysql,并且我已经到了需要重写repos中的代码以与mysql而不是datastore交互的地步。
目前几乎所有的数据存储实体都是ndb.model的子类,除了一个键表,我们的用户实体是webapp2\u extras.appengine.auth.models.user的子类。
子类化在幕后做了很多好事,比如设置unique和usertoken条目,以及设置和处理会话,在用户登录时设置会话,在用户注销时销毁会话。
既然user表将存在于mysql中,那么datastore提供的所有这些细节都需要单独实现,我不知道从哪里开始。
实现这一目标的最佳方法是什么?
该网站使用googleappengine标准环境,使用python2.7运行时和webapp2框架。我正在使用sqlalchemy与后端的mysql示例进行交互。
任何帮助或建议在此将不胜感激,请让我知道,如果你需要任何进一步的细节。
1条答案
按热度按时间ocebsuys1#
在搜索webapp2文档时我发现了这个信息。
http://webapp2.readthedocs.io/en/latest/tutorials/auth.html#login-与会话
我在googlesdk中做了一点修改,看到webapp2\u extras.appengine.auth.models.user中设置了相同的接口方法。
我用webapp2创建会话所需的基本属性创建了一个authmodel接口,并实现了页面上描述的方法。这些方法调用sqlalchemy查询,该查询将与我设置的sqlalchemy用户类交互,并允许我返回webapp2和gae执行其余操作所需的参数。