网站恢复正常

这应该算是技术贴了。

GAE由salve-master升级到HRD后,就一直没正常过,我一度想放弃这套程序,自己写套cms程序得了,甚至连老文章都备份出来 了,无奈又忙又懒,一通大读官方文档+flask+jinja2+WTF。。。觉得越学学多,还是整整原来这套程序吧。

仔细看看错误,放狗搜索一下,原来是原来的日志中有两个字段,标识了上一篇文章和下一篇文章,是把上下文的key序列化成字符串进行储存的,而在GAE的升级合并过程中,这个字符串是不会随之升级的,也就是说,将这个key序列化成新的字符串(其实就是加上新的程序的头),问题应该可以解决。

"all entity keys contain a reference to the app-id. If you use keys encoded as String, that reference won't be updated when copying data to a new application. But you can do it by yourself."

由于懒虫再次发作,我没有去遍历所有文章把错误的key全部改对,于是取了个巧,用try-catch捕捉异常,如果出错再转化新key,代码如下:


def next(self):
    if self.next_key:
        try:
            art = Entry.get(self.next_key)
        except Exception:
            #关键在以下三句
            old_key = db.Key(self.next_key)
            new_key = db.Key.from_path(old_key.kind(), old_key.id())
            self.next_key = str(new_key)
            self.put()
            art = Entry.get(self.next_key)
        if art:
            return art
        ...

原因是在这里找到的,因为解决方案是java的,python的解决是在这里找到的

是的,自己重写网站的计划又可以搁置了,其实这套程序还是有bug的,鉴于原作者两年前就不更新了,我还是自己慢慢修补来得简单

Permalink: http://www.dig-music.com/a/5871564964757504

Author:
walker
on

Categories: Tech

Tags: .

美国黑胶唱片工厂扩大规模 » « 苹果32亿美元收购Beats意在拯救衰落的iTunes

Related articles

Tech