すでにデータストアに文字列として保存されているエンティティフィールドがあります。appengineの文字列には、最大500文字の制限があります。
どうすればテキストに変更して、すべての古い値を引き続き使用できるようにできますか?
すでにデータストアに文字列として保存されているエンティティフィールドがあります。appengineの文字列には、最大500文字の制限があります。
どうすればテキストに変更して、すべての古い値を引き続き使用できるようにできますか?
特にコードが本番環境にある場合は、次のアプローチをお勧めします。
上記のアプローチは、物事を段階的に行うのに役立ちます。最悪の場合、問題が発生した場合は、少なくとも古い属性と古い値をそのまま使用します。
このようなタスクでは、アクションパラメータを持つサーブレットを使用してdb操作を実行しました。あなたの場合、エンティティクラスを更新し、エンティティを反復処理し、それに応じて値を設定します。
db.TextPropertyを使用する必要がありますが、このプロパティにインデックスを付けることはできません。
それを使用するには:
class Example(db.Model):
....
content = db.TextProperty()
content_text = db.Text(example.content)
or
example.content = db.Text(content_text)
フィールドをテキストとしてフェッチするだけです。それが動作します。既存の値を新しいフィールドなどに移行する必要はありません。