假设我有一个这样的模型定义:
class Image(db.Model):
id = db.StringProperty()
url = db.URLProperty()
现在我想给这个模型添加一些字段,让它看起来像这样:
class Image(db.Model):
id = db.StringProperty()
url = db.URLProperty()
width = db.IntegerProperty()
height = db.IntegerProperty()
因此,这个新模型将正确应用于新添加的 Image
实体。但我也想更新已经存在的实体,以便它们包含这两个新字段并用值填充它们。一个已经存在的实体是否会自动获取这两个字段,所以当我引用它们时,它会给我空字段还是会导致错误?我想我必须创建一个辅助函数来遍历所有现有实体并设置新的字段值,对吗?那么,我应该记住什么以及如何更好地进行此模型更新?我认为它有时会随着应用程序的出现而发生,所以我认为有一些简单的流程来做到这一点会很有用。
最佳答案
GAE 文档(文章部分)中涵盖了这个确切的场景:
基本上只需像您所做的那样更改模型定义,然后执行一些操作以为所有现存实体提供默认值。有几种方法可以完成第二部分 - 本文介绍了一种方法。
关于python - 如何更新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6014501/