备份始终是必要的,以防止人为错误。由于App Engine鼓励您构建多个代码版本来运行相同的数据集,因此能够回溯非常重要。 在Bulkloader文档中介绍了一个简单的转储/还原工具。 我过去在进行重大数据库重构时所做的另一件事情是: 1. 在新代码中更改实体名称(例如User->Customer或User2,如果必须)。 2. 按键查找实体: - 如果可能,请尝试使用该键并返回。 - 尝试使用旧db.Model类的键。 如果找到它,请迁移数据,put(),并返回新实体。 3. 像往常一样使用实体。 (您可能需要使用任务队列来迁移所有数据。如果总是按键获取实体,则不需要。) 部署新版本的代码,使其在服务器端同时存在。 当您激活新版本时,它就像旧实体的某个时间点快照。 在紧急情况下,您可以重新激活旧版本并使用旧数据。