3

すでにデータストアに文字列として保存されているエンティティフィールドがあります。appengineの文字列には、最大500文字の制限があります。

どうすればテキストに変更して、すべての古い値を引き続き使用できるようにできますか?

4

4 に答える 4

3

特にコードが本番環境にある場合は、次のアプローチをお勧めします。

  • エンティティに新しいテキストフィールドを導入します。
  • 単純な移行コードを記述して各エンティティを調べ、String属性から既存の値を読み取り、それを新しいText属性に配置します。
  • 現在のコードを変更して、新しいText属性からの書き込みと読み取りのみを行います。

上記のアプローチは、物事を段階的に行うのに役立ちます。最悪の場合、問題が発生した場合は、少なくとも古い属性と古い値をそのまま使用します。

于 2012-12-05T05:53:52.840 に答える
0

このようなタスクでは、アクションパラメータを持つサーブレットを使用してdb操作を実行しました。あなたの場合、エンティティクラスを更新し、エンティティを反復処理し、それに応じて値を設定します。

于 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 に答える