我的 App Engine 数据存储区遇到了一个严重问题,它似乎完全不受调试的影响:我无法在构建实体后对其进行修改。
从 app.yaml 中定义的控制台工作时甚至会出现问题,该控制台不与我的主应用程序共享任何代码。这是控制台中的一个示例:
>>> foo = Topic(name='bar') >>> foo.name 'bar' >>> foo.name = 'foo' >>> foo.name 'bar'
这种相同的行为会影响应用程序中的所有实体类型和所有属性。实体是否已保存无关紧要。
我尝试从几天、几周和几个月前恢复到转速,但问题仍然存在,尽管如果它实际上是在几周和几个月前,我肯定会注意到它,因为它破坏了应用程序逻辑。它存在于运行 Ubuntu 和 OSX 的不同机器上,它也存在于生产中的所有应用程序版本中,并且它存在于我测试过的至少一个其他应用程序中。在擦除我的 SDK 数据存储、使用不同的端口、刷新我的内存缓存和任务队列、重新安装 SDK 以及我在绝望中能想到的所有其他调试技巧之后,它仍然存在。
一个不受影响的地方是管理控制台。相同的代码序列得到修改实体的预期结果。即使在我导入了我能想到的每个模块或类之后,这可能会造成麻烦,控制台仍然总是按预期工作。另一个迹象表明我的代码中没有任何东西导致这个问题(而且我不会完全发疯)。
我相当肯定,就在几天前,我可以在我的应用程序中修改实体,就像在管理控制台中一样。毕竟,不可变实体不是很有用。
一些建议将非常非常感谢。我担心这个问题会阻止我继续开发,直到我能解决它。