python - 如何更新模型

标签 python google-app-engine

假设我有一个这样的模型定义:

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 文档(文章部分)中涵盖了这个确切的场景:

Updating your model's schema.

基本上只需像您所做的那样更改模型定义,然后执行一些操作以为所有现存实体提供默认值。有几种方法可以完成第二部分 - 本文介绍了一种方法。

关于python - 如何更新模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6014501/

相关文章:

javascript - 我无法在谷歌图表的代码 javascript 中获取 json 数据(项目 Python Hello Dashboard 示例)

node.js - Google Cloud Pub/Sub API - 推送电子邮件

python - 应用引擎 : Structured Property vs Reference Property for one-to-many relationship

python - Argparse 和几个排他性参数

python - 是否可以连接到 https URL?

python - 为不同的 python 版本准备 Pypi 包

Python 通过套接字传输文件

java - Tomcat HtmlUnit 过滤器看不到请求的 URL

google-app-engine - 如何将 Spring Boot REST 应用程序部署到 Google App Engine?

python - 如何用Python实时绘制每秒15000点连续读取的数据?