Google app engine 从StringProperty切换到StringProperty(重复=真)

Google app engine 从StringProperty切换到StringProperty(重复=真),google-app-engine,app-engine-ndb,Google App Engine,App Engine Ndb,我正在稍微改变我的数据模型。我打算将“repeated=True”添加到当前存在的stringProperty中。我想知道这是否会把事情搞砸?StringProperty()是一个字符串,StringProperty(repeated=True)是一个字符串列表 “foo”对[“foo”] 您肯定会遇到麻烦。您必须执行某种形式的模式迁移。如果您没有两个多的实体(比如少于10000个),那么使用远程api可能是最简单的。请看这个问题,-我在答案中包含了一些代码,允许您在不使用模型的情况下检索原始实

我正在稍微改变我的数据模型。我打算将“repeated=True”添加到当前存在的stringProperty中。我想知道这是否会把事情搞砸?

StringProperty()是一个字符串,StringProperty(repeated=True)是一个字符串列表

“foo”对[“foo”]


您肯定会遇到麻烦。

您必须执行某种形式的模式迁移。如果您没有两个多的实体(比如少于10000个),那么使用远程api可能是最简单的。请看这个问题,-我在答案中包含了一些代码,允许您在不使用模型的情况下检索原始实体。这允许您操作底层数据——在您的例子中,将字符串更改为字符串列表


我被纠正了。很抱歉更重要的更改需要迁移。

它应该可以工作,除非您没有值。单例属性值的磁盘上表示形式几乎与具有一个项的重复属性的磁盘上表示形式相同,虽然存在一个位差异(在NDB源代码中搜索“多个”),但反序列化时会忽略该位