我对更改db.Model模式的理解是,如果添加属性然后尝试获取没有该属性的旧实体,则“无关紧要”。
确实,将以下属性添加到在dev_server上运行的SiteUser
db.Model:
category_subscriptions = db.StringProperty()
仍允许我检索旧的SiteUser实体没有此属性(通过GQL查询)。
但是,将属性更改为list属性(StringListProperty,ListProperty):
category_subscriptions = db.StringListProperty()
会导致以下错误:
BadValueError: Property category_subscriptions is required
这是SDK开发服务器版本1.7.4。为什么会这样,我将如何解决它?
答案 0 :(得分:0)
这是我的解决方法,让它在dev_server上工作:
1)在生产中更新您的模型并进行部署
2)使用appcfg.py download_data
并获取您已更新类型的所有实体
3)使用appcfg.py upload_data
并将所有实体推送到本地数据存储区
瞧..现在可以检索您的本地数据存储区实体,而不会生成BadValueError