3

我有一个实体字段,它已经作为字符串保存在数据存储中。appengine 中的字符串限制为最多 500 个字符。

如何将其更改为 Text 并使所有旧值仍然可用?

4

4 回答 4

3

我推荐以下方法,尤其是在代码处于生产状态时:

  • 在您的实体中引入一个新的文本字段。
  • 编写一个简单的迁移代码来遍历每个实体,然后从 String 属性中读取现有值并将其放入新的 Text 属性中。
  • 修改当前代码以仅从新的 Text 属性写入和读取。

上述方法将帮助您逐步明智地做事,并且在出现问题的最坏情况下,至少您拥有旧属性和旧值。

于 2012-12-05T05:53:52.840 回答
0

对于这样的任务,我使用了一个带有 action 参数的 servlet 来执行数据库操作。在您的情况下,更新实体类,遍历实体并相应地设置您的值。

于 2012-12-05T05:41:36.753 回答
0

您必须使用 db.TextProperty,但不能索引此属性。

要使用它:

class Example(db.Model):
    ....
    content = db.TextProperty()



content_text = db.Text(example.content) 

or

example.content = db.Text(content_text)
于 2012-12-05T00:26:39.740 回答
0

只需将该字段作为文本获取。它会起作用的。无需将现有值迁移到新字段!

于 2014-03-30T09:08:30.313 回答